特許第6586710号(P6586710)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソフイアの特許一覧
特許6586710遊技機
この文献は図面が300枚以上あるため,図面を表示できません.
<>
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6586710
(24)【登録日】2019年9月20日
(45)【発行日】2019年10月9日
(54)【発明の名称】遊技機
(51)【国際特許分類】
   A63F 7/02 20060101AFI20191001BHJP
【FI】
   A63F7/02 326Z
【請求項の数】2
【全頁数】357
(21)【出願番号】特願2016-135023(P2016-135023)
(22)【出願日】2016年7月7日
(62)【分割の表示】特願2014-16500(P2014-16500)の分割
【原出願日】2014年1月31日
(65)【公開番号】特開2016-172176(P2016-172176A)
(43)【公開日】2016年9月29日
【審査請求日】2016年8月5日
【審判番号】不服-16591(P-16591/J1)
【審判請求日】2018年12月12日
(73)【特許権者】
【識別番号】000132747
【氏名又は名称】株式会社ソフイア
(74)【代理人】
【識別番号】100096699
【弁理士】
【氏名又は名称】鹿嶋 英實
(72)【発明者】
【氏名】大塚 敬宏
(72)【発明者】
【氏名】園田 欽章
(72)【発明者】
【氏名】亀井 欽一
【合議体】
【審判長】 瀬津 太朗
【審判官】 松川 直樹
【審判官】 田邉 英治
(56)【参考文献】
【文献】 特開2004−187702(JP,A)
【文献】 特開2003−340042(JP,A)
【文献】 特開2009−254495(JP,A)
【文献】 特開2013−94478(JP,A)
【文献】 特開2013−22167(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F7/02
(57)【特許請求の範囲】
【請求項1】
遊技の進行を制御する遊技制御手段と、表示手段を含む演出手段を制御して前記表示手段における変動表示ゲームを含む演出を行うことが可能な演出制御手段と、を備え、
前記遊技制御手段は、
始動入賞に基づき前記変動表示ゲームの実行に関する判定情報を抽出して当該変動表示ゲームの始動記憶として記憶する始動入賞記憶手段と、
前記抽出した判定情報を事前に判定する遊技結果事前判定手段と、を備え、
前記遊技結果事前判定手段による判定の結果を知らせる結果情報を前記演出制御手段に送信可能であり、
前記演出制御手段は、
前記結果情報を受信すると当該結果情報に対応する事前予告演出を抽選して実行することが可能であり、
前記事前予告演出として、
始動記憶を示す保留表示の表示態様を通常の表示態様と異なる表示態様で表示することにより期待度を報知する第1事前予告演出と、
前記第1事前予告演出とは異なる系統の演出であり、前記変動表示ゲームの演出として行われる所定演出の態様により期待度を報知する第2事前予告演出と、があり、
前記第1事前予告演出は、前記始動入賞に対応して演出を開始し、
前記第2事前予告演出は、前記第1事前予告演出より遅いタイミングかつ所定条件が成立した時に演出を開始し、
演出モードが切り替わる所定回数前の前記変動表示ゲームの期間は前記事前予告演出の抽選を行わないようにし、
前記期間にのみ実行する特定の変動パターンを設けることが可能であることを特徴とする遊技機。
【請求項2】
前記遊技制御手段は、
始動記憶の数である保留数を知らせる保留数情報を前記演出制御手段に送信可能であり、
前記演出制御手段は、
前記保留数情報に基づく前記保留数に応じて、実行する前記事前予告演出の抽選内容を異ならせることが可能であることを特徴とする請求項1に記載の遊技機。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パチンコ機などの遊技機に関する。
【背景技術】
【0002】
従来、遊技機では複数の図柄を変動表示可能な表示装置を配置し、パチンコ遊技の制御などに必要な処理を行うため、遊技制御基板、演出制御基板を含む各種基板を備えている。
遊技機を構成する各種基板のうち、遊技者が遊技をする際に最も注目する表示装置での映像表示は演出制御基板が制御している。演出制御基板(サブ基板)は遊技制御基板(主基板)からの指示に基づいて、その時の遊技状態に対する演出内容(描画内容)を判断して、演出を行っている(特許文献1参照)。
なお、遊技制御基板や演出制御基板はそれぞれ制御装置(制御手段)を構成し、それらは遊技制御装置(遊技制御手段)や演出制御装置(演出制御手段)となっている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−13477号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、年々増加する傾向のある表示演出量に対応するため、効率の良い遊技機の開発が求められている。
【0005】
そこで本発明は、多様化する演出を効率良く開発できる遊技機を提供することを目的とする。
【課題を解決するための手段】
【0006】
請求項1に記載の発明は、
遊技の進行を制御する遊技制御手段と、表示手段を含む演出手段を制御して前記表示手段における変動表示ゲームを含む演出を行うことが可能な演出制御手段と、を備え、
前記遊技制御手段は、
始動入賞に基づき前記変動表示ゲームの実行に関する判定情報を抽出して当該変動表示ゲームの始動記憶として記憶する始動入賞記憶手段と、
前記抽出した判定情報を事前に判定する遊技結果事前判定手段と、を備え、
前記遊技結果事前判定手段による判定の結果を知らせる結果情報を前記演出制御手段に送信可能であり、
前記演出制御手段は、
前記結果情報を受信すると当該結果情報に対応する事前予告演出を抽選して実行することが可能であり、
前記事前予告演出として、
始動記憶を示す保留表示の表示態様を通常の表示態様と異なる表示態様で表示することにより期待度を報知する第1事前予告演出と、
前記第1事前予告演出とは異なる系統の演出であり、前記変動表示ゲームの演出として行われる所定演出の態様により期待度を報知する第2事前予告演出と、があり、
前記第1事前予告演出は、前記始動入賞に対応して演出を開始し、
前記第2事前予告演出は、前記第1事前予告演出より遅いタイミングかつ所定条件が成立した時に演出を開始し、
演出モードが切り替わる所定回数前の前記変動表示ゲームの期間は前記事前予告演出の抽選を行わないようにし、
前記期間にのみ実行する特定の変動パターンを設けることが可能であることを特徴とする遊技機である。
【発明の効果】
【0007】
本発明によれば、多様化する演出を効率良く開発できる遊技機を提供可能である。
【図面の簡単な説明】
【0008】
図1】パチンコ機の前面側斜視図である。
図2】パチンコ機の遊技盤の前面図である。
図3】パチンコ機の裏面図である。
図4】パチンコ機の制御系を示すブロック図である。
図5】遊技制御装置のブロック図である。
図6】演出制御装置のブロック図である。
図7】演出制御装置におけるVDPのブロック図である。
図8】遊技制御装置のメイン処理を示すフローチャートである。
図9】遊技制御装置のメイン処理を示すフローチャートである。
図10】チェックサム算出処理を示すフローチャートである。
図11】初期値乱数更新処理を示すフローチャートである。
図12】タイマ割込み処理を示すフローチャートである。
図13】入力処理を示すフローチャートである。
図14】スイッチ読み込み処理を示すフローチャートである。
図15】出力処理を示すフローチャートである。
図16】払出コマンド送信処理を示すフローチャートである。
図17】メイン賞球残数更新処理を示すフローチャートである。
図18】乱数更新処理1を示すフローチャートである。
図19】乱数更新処理2を示すフローチャートである。
図20】入賞口スイッチ/エラー監視処理を示すフローチャートである。
図21】不正&入賞監視処理を示すフローチャートである。
図22】入賞数カウンタ更新処理を示すフローチャートである。
図23】コマンド設定処理を示すフローチャートである。
図24】エラーチェック処理を示すフローチャートである。
図25】特図ゲーム処理を示すフローチャートである。
図26】始動口スイッチ監視処理を示すフローチャートである。
図27】特図始動口スイッチ共通処理を示すフローチャートである。
図28】特図保留情報判定処理を示すフローチャートである。
図29】大入賞口スイッチ監視処理を示すフローチャートである。
図30】図柄変動制御処理を示すフローチャートである。
図31】特図普段処理を示すフローチャートである。
図32】特図普段処理移行設定処理1を示すフローチャートである。
図33】特図1変動開始処理1を示すフローチャートである。
図34】大当りフラグ1設定処理を示すフローチャートである。
図35】大当り判定処理を示すフローチャートである。
図36】特図1停止図柄設定処理を示すフローチャートである。
図37】特図情報設定処理を示すフローチャートである。
図38】変動パターン設定処理を示すフローチャートである。
図39】2バイト振り分け処理を示すフローチャートである。
図40】振り分け処理を示すフローチャートである。
図41】変動開始情報設定処理を示すフローチャートである。
図42】特図2変動開始処理1を示すフローチャートである。
図43】大当りフラグ2設定処理を示すフローチャートである。
図44】特図2停止図柄設定処理を示すフローチャートである。
図45】特図変動中処理移行設定処理(特図1)を示すフローチャートである。
図46】特図変動中処理移行設定処理(特図2)を示すフローチャートである。
図47】特図変動中処理を示すフローチャートである。
図48】特図表示中処理移行設定処理を示すフローチャートである。
図49】特図表示中処理を示すフローチャートである。
図50】ファンファーレ/インターバル中処理移行設定処理1を示すフローチャートである。
図51】演出モード情報チェック処理を示すフローチャートである。
図52】時間短縮変動回数更新処理を示すフローチャートである。
図53】時短終了設定処理を示すフローチャートである。
図54】ファンファーレ/インターバル中処理を示すフローチャートである。
図55】ファンファーレ/インターバル中処理を示すフローチャートである。
図56】ソレノイド情報設定処理を示すフローチャートである。
図57】大入賞口開放中処理移行設定処理1を示すフローチャートである。
図58】大入賞口開放中処理移行設定処理2を示すフローチャートである。
図59】大入賞口開放中処理を示すフローチャートである。
図60】大入賞口残存球処理移行設定処理を示すフローチャートである。
図61】大入賞口開放中処理移行設定処理3を示すフローチャートである。
図62】大入賞口残存球処理を示すフローチャートである。
図63】ファンファーレ/インターバル中処理移行設定処理2を示すフローチャートである。
図64】大当り終了処理移行設定処理を示すフローチャートである。
図65】大当り終了処理を示すフローチャートである。
図66】大当り終了設定処理1を示すフローチャートである。
図67】大当り終了設定処理2を示すフローチャートである。
図68】特図普段処理移行設定処理3を示すフローチャートである。
図69】普図ゲーム処理を示すフローチャートである。
図70】ゲートスイッチ監視処理を示すフローチャートである。
図71】普電入賞スイッチ監視処理を示すフローチャートである。
図72】普図普段処理を示すフローチャートである。
図73】普図普段処理移行設定処理1を示すフローチャートである。
図74】普図変動中処理移行設定処理を示すフローチャートである。
図75】普図変動中処理を示すフローチャートである。
図76】普図表示中処理移行設定処理を示すフローチャートである。
図77】普図表示中処理を示すフローチャートである。
図78】普図当り中処理移行設定処理を示すフローチャートである。
図79】普図当り中処理を示すフローチャートである。
図80】普電作動移行設定処理を示すフローチャートである。
図81】普電残存球処理を示すフローチャートである。
図82】普図当り終了処理移行設定処理を示すフローチャートである。
図83】普図当り終了処理を示すフローチャートである。
図84】普図普段処理移行設定処理2を示すフローチャートである。
図85】セグメントLED編集処理を示すフローチャートである。
図86】磁石不正監視処理を示すフローチャートである。
図87】電波不正監視処理を示すフローチャートである。
図88】外部情報編集処理を示すフローチャートである。
図89】外部情報編集処理を示すフローチャートである。
図90】メイン賞球信号編集処理を示すフローチャートである。
図91】始動口信号編集処理を示すフローチャートである。
図92】固有情報信号編集処理を示すフローチャートである。
図93】CPU固有情報取得処理を示すフローチャートである。
図94】ハード乱数のビット転置パターンを示す図である。
図95】上大入賞口の開閉パターンを示す図である。
図96】下大入賞口の開閉パターンを示す図である。
図97】演出制御装置のパワーオンリセット処理を示すフローチャートである。
図98】演出制御装置のメイン処理を示すフローチャートである。
図99】コマンド受信割込み処理を示すフローチャートである。
図100】受信コマンド範囲チェック処理を示すフローチャートである。
図101】受信コマンドチェック処理を示すフローチャートである。
図102】受信コマンド解析処理を示すフローチャートである。
図103】単発系コマンド処理を示すフローチャートである。
図104】単発系コマンド処理を示すフローチャートである。
図105】客待ち用シナリオデータ設定処理を示すフローチャートである。
図106】シナリオデータ設定処理を示すフローチャートである。
図107】特図1保留情報設定処理を示すフローチャートである。
図108】図柄系コマンド処理を示すフローチャートである。
図109】変動系コマンド処理を示すフローチャートである。
図110】変動パターン対応図柄判定処理を示すフローチャートである。
図111】変動パターン分類処理を示すフローチャートである。
図112】変動演出設定処理を示すフローチャートである。
図113】変動演出設定処理を示すフローチャートである。
図114】変動演出設定処理を示すフローチャートである。
図115】予告抽選処理を示すフローチャートである。
図116】予告キャンセル確認処理を示すフローチャートである。
図117】リーチなし変動設定処理を示すフローチャートである。
図118】停止図柄設定処理を示すフローチャートである。
図119】予告演出設定処理1を示すフローチャートである。
図120】カットインキャラ差替え判定処理1を示すフローチャートである。
図121】カットインキャラ差替え判定処理2を示すフローチャートである。
図122】カットインキャラ差替え判定処理3を示すフローチャートである。
図123】カットインキャラ差替え判定処理3を示すフローチャートである。
図124】PB予告用シナリオデータ設定処理を示すフローチャートである。
図125】大当り系コマンド処理を示すフローチャートである。
図126】先読み図柄系コマンド処理を示すフローチャートである。
図127】先読み変動系コマンド処理を示すフローチャートである。
図128】先読みコマンド整合チェック処理を示すフローチャートである。
図129】先読み抽選処理を示すフローチャートである。
図130】先読み抽選処理を示すフローチャートである。
図131】テストモード系コマンド処理を示すフローチャートである。
図132】テストモード処理を示すフローチャートである。
図133】テストモード通常状態処理を示すフローチャートである。
図134】テストモードROM検査グループ処理を示すフローチャートである。
図135】サブ間送信開始処理を示すフローチャートである。
図136】サブ間受信タスク処理を示すフローチャートである。
図137】サブ間送信データ編集処理を示すフローチャートである。
図138】サブ間ack応答タスク処理を示すフローチャートである。
図139】サブ間演出設定処理を示すフローチャートである。
図140】シナリオ設定処理を示すフローチャートである。
図141】シナリオ解析処理を示すフローチャートである。
図142】シナリオ解析処理を示すフローチャートである。
図143】モーション登録処理を示すフローチャートである。
図144】モーションデータ初期化処理1及び2を示すフローチャートである。
図145】モーション削除処理及びモーション継続処理を示すフローチャートである。
図146】定数ウェイト処理及び可変ウェイト処理を示すフローチャートである。
図147】PB待ち処理及びPB判定分岐処理を示すフローチャートである。
図148】図柄停止処理を示すフローチャートである。
図149】図柄逆算差替処理を示すフローチャートである。
図150】変動シナリオ切替処理を示すフローチャートである。
図151】繰り返し処理及び終了処理を示すフローチャートである。
図152】モーション制御処理を示すフローチャートである。
図153】モーションコマンド実行処理を示すフローチャートである。
図154】モーションコマンド実行処理を示すフローチャートである。
図155】ビットマップ追加処理を示すフローチャートである。
図156】動画追加処理を示すフローチャートである。
図157】1点指定オブジェクト移動処理を示すフローチャートである。
図158】エフェクトタイプ指定処理及びエフェクトパラメータ指定処理を示すフローチャートである。
図159】オブジェクト削除処理及びオブジェクト変更処理を示すフローチャートである。
図160】オブジェクト動画デコード処理を示すフローチャートである。
図161】ビヘイビアインデックス設定処理を示すフローチャートである。
図162】演出表示編集処理を示すフローチャートである。
図163】演出表示編集処理を示すフローチャートである。
図164】演出表示編集処理を示すフローチャートである。
図165】キャラクタ描画処理を示すフローチャートである。
図166】表示左図柄変換処理、PB色変換処理、及びリーチ文字変換処理を示すフローチャートである。
図167】武将1セリフ変換処理を示すフローチャートである。
図168】VDP割込み処理を示すフローチャートである。
図169】Vブランク開始割込み処理を示すフローチャートである。
図170】変動演出設定処理(変形例)を示すフローチャートである。
図171】サブ間通信のパケット構成例を示す図である。
図172】ACTIONチェックテーブル及び一致チェックテーブルの一例を示す図である。
図173】ACT整合チェックアドレステーブル及びACT整合チェックテーブルの一例を示す図である。
図174】静止画ROMメンバリストテーブルの一例を示す図である。
図175】動画ROMメンバリストテーブルの一例を示す図である。
図176】モーション用リストテーブルの一例を示す図である。
図177】客待ちデモ時シナリオテーブルの具体例を示す図である。
図178】変動パターン種別テーブルの具体例を示す図である。
図179】前半予告振分グループアドレステーブルの具体例を示す図である。
図180】前半予告振分グループテーブルの具体例を示す図である。
図181】前半予告振分グループテーブルの具体例を示す図である。
図182】前半予告振分テーブルの具体例を示す図である。
図183】後半予告振分グループアドレステーブルの具体例を示す図である。
図184】図柄変動リストテーブルの具体例を示す図である。
図185】特図1通常変動時シナリオテーブルの具体例を示す図である。
図186】左図柄通常変動開始時モーションテーブルの具体例を示す図である。
図187】左図柄変動開始時の表示例を示す図である。
図188】通常変動時の現図柄、前図柄、次図柄の関係を説明する図である。
図189】特図1第4図柄変動時モーションテーブルの具体例を示す図である。
図190】第4図柄の表示例を示す図である。
図191】左図柄通常変動時モーションテーブルの具体例(連結例)を示す図である。
図192】プッシュボタン予告時シナリオ及びモーションテーブルの一例を示す図である。
図193】エンディング時シナリオテーブルの具体例を示す図である。
図194】モーションテーブル共通化(静止画ムービー)を説明する図である。
図195】巻物予告時モーションテーブルの具体例を示す図である。
図196】巻物予告時モーションテーブルの具体例を示す図である。
図197】巻物予告時の表示例を示す図である。
図198】先読み変動コマンド変換テーブルの具体例を示す図である。
図199】先読み変動コマンド変換テーブルの具体例を示す図である。
図200】先読み条件チェックテーブルの具体例を示す図である。
図201】先読み抽選グループアドレステーブル等の具体例を示す図である。
図202】テストモード状態遷移図である。
図203】前半予告振分グループアドレステーブルの変形例1を示す図である。
図204】前半予告振分グループアドレステーブルの変形例2を示す図である。
図205】前半予告振分テーブルの構造の具体例(通常実施例)を示す図である。
図206】前半予告振分テーブルの構造の具体例(変形例)を示す図である。
図207】表示装置の演出で使用される表示構成要素及び表示画面の一例を示す図である。
図208】表示装置の演出で使用されるシナリオテ−ブルの一例を示す図である。
図209】演出ボタンの演出に関するシナリオテ−ブル及びプッシュボタン演出の一例を示す図である。
図210】プッシュボタン予告のモーションテーブルの一例を示す図である。
図211】図柄停止表示の動作を説明する図である。
図212】図柄停止表示のモーションテーブルの一例を示す図である。
図213】図柄停止表示の動作を説明する図である。
図214】図柄停止表示の基本キャラクタの設定動作を説明する図である。
図215】図柄停止表示の基本キャラクタの設定動作を説明する図である。
図216】大当りエンディング期間の動作を説明する図である。
図217】実施例2における表示装置の演出で使用される表示構成要素及び表示画面の一例を示す図である。
図218】実施例3における表示装置の演出で使用される表示構成要素及び表示画面の一例を示す図である。
【発明を実施するための形態】
【実施例1】
【0009】
以下、本発明の実施例1として、パチンコ機に適用した場合の形態例を、図面を参照して説明する。
A.パチンコ機の正面構成
最初に、図1によって本例のパチンコ機の全体構成について説明する。図1は本例のパチンコ機1の前面側斜視図である。
パチンコ機1は、当該パチンコ機1が設置される島に対して固定される機枠2と、この機枠2にヒンジ部3において回動可能に軸支されることによって、機枠2に対して開閉自在とされた前面枠4とを備える。この前面枠4には、遊技盤20(図2に示す)が取り付けられている。
【0010】
また前面枠4には、その前面上側を覆うようにガラス枠5が開閉自在に取付けられている。なお、このガラス枠5により保持されるガラス板(透明のプラスチックボードでもよい、符号は省略)を介して、遊技盤20の後述する遊技領域22が前面から視認可能となっている。またガラス枠5は、ヒンジ部3において前面枠4に開閉可能に軸支されている。
ここで、前面枠4は遊技枠という名称で呼称され、ガラス枠5は前枠という名称で呼称されることもあるが、本実施例では前面枠4、ガラス枠5で説明している。
このガラス枠5の下側には、操作パネル6が設けられている。
なお、通常、パチンコ機1には遊技媒体貸出装置としてのCRユニット(カード式球貸制御ユニット)が併設されることもあるが、ここでは図示を略している。ただし、図4では、CRユニットをカードユニット551として図示しており、このカードユニット551との間で信号などの伝達を中継するカードユニット接続基板54についても図4で示している。
【0011】
図2に示すように、遊技盤20は、板状の基材(いわゆるベニア)の前面に遊技釘を植設したもので、その前面の略円形領域がガイドレール21で囲まれることにより遊技領域22が形成されたものである。遊技領域22は、打ち込まれた遊技球を上方から落下させつつアウトあるいはセーフの判定(入賞したか否かの判定)を行う領域であり、入賞口に遊技球が入って有効にセーフとなる場合は、所定数の遊技球がガラス枠5の下部に設けられた上皿7に排出される(即ち、賞球として排出される)構成となっている。
また、前面枠4の開閉側(図1において右側)の縁部には、前面枠4及びガラス枠5の施錠装置(図示省略)の鍵挿入部8が形成されている。
【0012】
また、ガラス枠5の下部に設けられた上皿7は、賞球として又は貸球として排出された発射前の遊技球を一時保持するものである。この上皿7には、遊技者が操作する押ボタン式の演出ボタン9が設けられている。
また、操作パネル6には、上皿7の遊技球を遊技者の操作によって移すことができる下皿10と、遊技球の発射操作を行う発射操作ハンドル11とが設けられている。
また、図1において符号12a、12bで示すものは、効果音等を出力するスピーカである。このうち符号12aは、ガラス枠5の上部左右両側に設けられた上スピーカである。また符号12bは操作パネル6の左端部(下皿10の左側)に設けられた下スピーカである。
【0013】
また図1において、符号13で示すものは、ガラス枠5の前面に設けられたLED(発光ダイオード)を発光源とする装飾ランプであり、符号14で示すものは、ガラス枠5の上部左右両側前面に設けられたムービングライトである。図示省略しているが、ムービングライト14は、発光源としてLEDを備え、駆動源としてモータを備えている。ここで、装飾ランプ13とムービングライト14は図4に示す装飾LED301を構成する。
また、パチンコ機1の盤と枠という概念で装飾機構を区分するとすれば、装飾ランプ13とムービングライト14は枠側の演出機構に相当し、図6に示す枠装飾装置43を構成し、またムービングライト14は図6に示す枠演出装置45も構成する。
【0014】
B.遊技盤の前面構成
図2において、符号21は遊技盤20のガイドレールであり、既述したように、遊技盤前面の略円形領域がこのガイドレール21で囲まれることにより遊技領域22が形成されている。
遊技領域22には、図2に示すように、アウト球流入口23、センターケース24、第1始動入賞口25、普通電動役物(普電)としての第2始動入賞口26、変動入賞装置27、一般入賞口28〜31、普図始動ゲート32、変動入賞装置33(以下、変動入賞装置27と区別するため、第2変動入賞装置33という)、多数の遊技釘(図示省略)などが設けられている。また、遊技盤20の遊技領域22外には、一括表示装置35が設けられている。なお遊技釘は、遊技領域22の上部に飛入した遊技球がこれに当たりながら流下するものであり、センターケース等の取付部分を除いた遊技領域内に複数本植設されている。
【0015】
センターケース24は、遊技盤20の裏側に取り付けられる表示装置41(図4に示す)の表示部41a(図2に示す)の前面周囲を囲む部材である。図示省略しているが、このセンターケース24には、演出又は装飾のためのLEDを発光源とするランプ類や、例えば表示装置41における演出表示と協働して演出効果を高める電動役物(モータやソレノイドなどの駆動源によって作動する可動部を有する役物)が設けられている。
なお、演出又は装飾のためのランプ類は、遊技盤20のセンターケース24以外の部分(遊技領域22外でもよい)にも設けられる。なお、遊技盤20(センターケース24含む)に設けられた演出又は装飾のためのランプ類は、盤側の演出機構に相当し、盤装飾装置42(図6に示す)また、センターケース24に設けられた電動役物は、盤側の演出機構に相当し、盤演出装置44(図6に示す)を構成する。なお、盤演出装置44を構成する電動役物は、遊技盤20のセンターケース24以外の箇所に設けられてもよい。
【0016】
表示装置41(演出手段、表示手段)は、例えば液晶表示装置を含んで構成され、通常、変動表示装置と称されるものである。なお、表示装置41の名称としては、同様の機能を持つ部材の呼び名として、例えば特別図柄表示装置、特図表示装置、図柄変動装置、可変図柄表示装置、識別情報変動装置、識別情報変動表示装置など各種あるが、機能が同じものは同一の範疇である。
表示装置41は、数字や文字などの識別情報(特図という)を表示可能な表示部41a(画面)を有し、複数列の特図を表示可能である。例えば、左側と中央と右側に特図を縦3列に表示し、各列において数字や文字等よりなる特図を停止状態で表示(停止表示)したり、あるいは変動状態(例えば、縦方向にスクロールする状態)で表示(即ち、変動表示)したりすることが可能である。
また表示部には、上記特図とは別個に背景画像やキャラクタ画像などの演出用又は情報報知用の画像が表示可能である。
なお、いわゆる普図に相当する画像を表示装置41に表示可能な構成としてもよい。ただし、表示装置41に普図を表示した場合には、それは飾り普図のことである。表示装置41に普図を表示する構成にした場合、表示装置41は普通図柄可変表示装置に相当する。
ここで、特図とは大当りに関連する変動表示ゲームで変動表示される識別情報であり、普図とは普図当り(大当りではない)に関連する変動表示ゲームで変動表示される識別情報である。
普図は、実際には表示装置41に表示されておらず、一括表示装置35に表示する構成になっている。一括表示装置35に表示される普図を後述のように本普図という。
【0017】
また始動入賞口25,26は、後述するように特図の始動入賞口として機能する入賞口であり、本例では図2に示すように上下に並んで配設されている。上側の第1始動入賞口25は常に開口している。下側の第2始動入賞口26は、開閉部材26aを左右両側に有し、これら開閉部材26aが逆ハの字状に開くと入賞可能になり、図2に示すようにこれら開閉部材26aが閉じていると入賞不可能である。これら始動入賞口25,26は、センターケース24の中央部下方に配置されている。
なお、第2始動入賞口26は普通電動役物(普電)ともいい、普通変動入賞装置に相当する。
また変動入賞装置27は、開閉部材27bによって開閉される大入賞口27a(後述のように第1大入賞口に相当)を有する装置(いわゆるアタッカー)である。この大入賞口27aは、後述する大当りになったことを条件として開放されて遊技球が入賞可能となる。
さらに、第2変動入賞装置33は一対の開閉部材33aを左右両側に有し、これら開閉部材33aが逆ハの字状に開くと入賞可能になり、図2に示すように、これら開閉部材33aが閉じていると入賞不可能である。この第2変動入賞装置33は、後述する大当りの中でも特別の当たり状態になったことを条件として開放されて遊技球が入賞可能となる。この場合、大当りが発生したときには変動入賞装置27あるいは第2変動入賞装置33の何れか一方が開放されるが、何れを開放するかは特図変動表示ゲームの結果態様(特別結果)により決定される。
なお、第2変動入賞装置33において開閉部材33aが逆ハの字状に開いて入賞可能となる開口部を第2大入賞口という。
ここで、本実施例では変動入賞装置27と第2変動入賞装置33の2つのアタッカーが配置される構成であるので、変動入賞装置27を第1アタッカー、第2変動入賞装置33を第2アタッカーと呼ぶことがあり、また、各アタッカーの入賞口を第1大入賞口(又は下大入賞口)、第2大入賞口(又は上大入賞口)と呼ぶことがある。後述のように、第1大入賞口は第1大入賞口ソレノイド133によって開閉され、第2大入賞口は第2大入賞口ソレノイド134によって開閉されるようになっている。
【0018】
一括表示装置35(詳細は後述)には特図とは別に普図も表示されており、普図ゲームについて説明すると、以下の通りである。
遊技球が普図始動ゲート32を通過したとき、一括表示装置35で普図の変動表示による普図の変動表示ゲーム(以下、普図変動表示ゲームという)が行われ、停止した普図が所定の態様(特定表示態様)であれば、普図当りと呼ばれる特典が付与される。
なお、表示装置41で普図を表示する構成にした場合には、表示装置41の画面で普図(飾り普図)の変動表示が行われる。ただし、表示装置41とは別に独自の普図表示器を配置してもよい。
普図当りになると、第2始動入賞口26の一対の開閉部材26aが逆ハの字に開いた開状態に、所定の開放時間だけ一時的に保持される遊技が行われ、遊技球が始動入賞し易くなり、その分、特図の変動表示ゲームの実施回数が増えて大当りになる可能性が増す。
また、上記普図の変動表示ゲーム中に、普図始動ゲート32にさらに遊技球が入賞したときには、後述の一括表示装置35の表示器によって普図始動記憶の保留表示が実行されて、例えば4個まで記憶され、普図の変動表示ゲームの終了後に、その記憶に基づいて上記普図の変動表示ゲームが繰り返される。なお、普図の確率を高確率にすれば、普図当たりしやすくなる。
なお、一括表示装置35の表示器によって表示される普図始動記憶の保留表示は、本普図始動記憶である。一括表示装置35とは別に、飾り普図始動記憶を表示するための独自の普図始動記憶表示器を遊技領域22に配置してもよい
ここで、時短について説明しておくと、以下のようなものである。
時短は「時間短縮」の略で、大当たり終了後、特図や普図の変動時間を通常よりも短縮し、時間効率を高めるとともに、普図当たり確率を高めて普通電動役物(普電)(第2始動入賞口26)の開放(普電の開放時間を通常よりも長くすることも含む)による始動口への入賞のサポートを行うことで、所定の特図の変動表示ゲームの実施回数まで持ち玉(持球数)を減らさずに効率よく特図を変動させる機能である。
【0019】
次に一括表示装置35は、いわゆる普図の表示や特図の表示、さらには特図や普図の始動記憶の保留表示(場合により、特図保留表示、普図保留表示という)や、遊技状態の表示を行うものであり、例えばLEDを発光源とする複数の表示器(例えば、1個の小さなランプよりなる表示器、或いは本特図としての数字等を表示可能な例えば7セグメントの表示器)によって構成される。例えば、一括表示装置35の中のLEDセグメントのうち、特図1を表示するものは特図1表示器、特図2を表示するものは特図2表示器として配置されている。
なお、始動記憶の保留表示(場合により、単に始動記憶表示という)とは、変動表示ゲームが未実施の状態で保留されている始動記憶の数等を報知するための表示であり、一般的には、始動記憶毎にランプ等の点灯によって表示する。即ち、始動記憶が3個有れば、3個のランプを点灯させたり、3個の図形を表示させたりすることによって行われる。
なお、この一括表示装置35の表示器によって表示されるものが本特図や本普図(正式な特図や普図)であるのに対して、前述の変動表示装置41の表示部等で行われる特図や普図(ただし、変動表示装置41で普図を表示する構成を採用した場合)の表示は、遊技者向けの演出用のダミー表示である。このため、遊技者から見て特図や普図といえば、このダミー表示の方を指している。なお以下では、このダミー表示であることを強調する場合に、例えば「飾り特図」、「飾り普図」と表記する。
このように、この一括表示装置35は、遊技者向けのものではなく、遊技盤20の検査などで使用されるものである。例えば、遊技者向けの特図の始動記憶の表示(特図保留表示)は、例えば変動表示装置41の表示部、或いは遊技盤20に設けた複数のランプ(発光部)によって行われる。
【0020】
C.パチンコ機裏側の構成
次に図3は、本実施例のパチンコ機1の裏側全体構成を示す図である。
パチンコ機1における裏機構の主要な部品としては、貯留タンク51、誘導路52a、払出ユニット53、カードユニット接続基板54、外部情報端子板55、払出制御装置200、遊技制御装置100、演出制御装置300、及び電源装置500などがある。
なお、図3では直接に演出制御装置300は見えず、カバー部材の奥に演出制御装置300が配置されているので、説明の都合上、矢印を図3にように表記している。すなわち、図3に見えるカバー部材は演出制御装置300の基板を収納するボックスとは異なり、遊技機裏面に遊技球が入り込まないようにする機能を有するもので、扉状に開閉可能な構造である。そして、図3に示すカバー部材の左側が支点となり、左側に開き、その奥にボックスに収納された演出制御装置300が配置されている。
【0021】
貯留タンク51は、払出される前の球を予め貯留しておくもので、この貯留タンク51の球数の不足は補給センサ(図示略)によって検出され、不足のときは島設備のシュートと呼ばれる機器から球が補給される。貯留タンク51内の球は誘導路52aにより誘導され、払出モータ222(図4に示す)を内蔵する払出ユニット(図示略)によって前述の上皿7に排出される。なお払出ユニットは、例えば払出モータ222の回転量に応じた球数の遊技球の排出が可能であり、この払出ユニットによって上皿7に向けて払い出される遊技球は、払出球検出スイッチ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のみで行う形態の何れであってもよい。
【0022】
ここで、上記の固有IDは遊技制御装置100における演算処理装置(後述の遊技用マイコン101)であることを個別に(ユニークに)識別可能な個体識別情報に相当するが、払出制御装置200における演算処理装置(後述の払出用マイコン201)にも、当該演算処理装置であることを個別に(ユニークに)識別可能な個体識別情報が格納されている。
そこで、本実施例1では必要に応じて遊技用マイコン101を識別可能な個体識別情報を主基板固有ID,払出用マイコン201を識別可能な個体識別情報を払出固有IDと適宜、区別して説明する。
また、遊技用マイコン101を識別可能な個体識別情報に対して、これと区別する概念として、払出用マイコン201を識別可能な個体識別情報を払出個体識別情報という。後述の他の実施例についても同様である。
なお、区別しないで、通常単に固有IDというときは、主基板固有IDを指す。
また、発明概念では、固有IDを「個体識別情報」と称しているが、通常の現場レベルなど一般的な場合は、個体識別情報を固有IDとして称することも多いので、本明細書において、実施例1では、個体識別情報を固有IDとして説明したり、また、明細書及び図面上も固有IDとのバランス上、固有情報あるいは固有識別情報として記述や図示することがある。
【0023】
払出制御装置200は、遊技球の払出(賞球払出と貸球払出の両方)に必要な制御を行うもので、所定のケース内にこの制御機能を実現する回路基板が収納されて構成されている。この払出制御装置200は、図4に示すように遊技制御装置100から送信される払出制御コマンドに基づき、所定数の遊技球を賞球として上皿7に排出させる賞球払出の制御を行う。また払出制御装置200は、カードユニット551(図4参照)からのBRDY信号やBRQ信号に基づいて、所定数の遊技球を貸球として上皿7に排出させる貸球払出の制御を行う。
遊技制御装置100は、遊技盤20に配設されているソレノイド等を制御するとともに、他の制御装置に制御情報(コマンド)を送って、遊技の進行を統括的に管理制御するものであり(詳細後述する)、これら制御を行うマイコンを含む回路が形成された基板が、所定のケース内に収納された構成となっている。
【0024】
演出制御装置300は、遊技制御装置100から送信されるコマンドに基づき、前述の変動表示装置や装飾ランプや演出装置やスピーカ12a、12bの制御を行うもので、所定のケース内にこの制御機能を実現する回路基板が収納されて構成されている。
また、カードユニット接続基板54(図3参照、図4にも図示)は、パチンコ機1側と球を貸し出すCRユニット(カードユニット551のこと。以下同様)側との配線接続のための基板である。このカードユニット接続基板54での上記配線接続がされていないと、パチンコ機1では遊技球の発射が不可能となるように制御される。
【0025】
なお一般に、パチンコ機の機種交換などの場合には、CRユニットを除くパチンコ機全体を交換するか、或いはパチンコ機の枠側(払出制御装置含む)を残して遊技盤側(遊技盤と遊技制御装置などの主要な制御装置含む)だけを交換する場合もある。ただし、貸球4円であれば、何れも4円のものが使用されるが、例えば貸球1円専用台であれば、遊技盤側も枠側も貸球1円専用のものが使用されることを前提としている。
【0026】
D.制御系の構成
次に、本例のパチンコ機1の制御系について、図4乃至図7を参照して説明する。なお図や以下の説明において、「SW」はスイッチを意味する。また、図面では部材の名称が長い場合に図示がしにくくなるので、適宜、短めにして表記(図示)することがある。
パチンコ機1は、制御系の主な構成要素として、遊技制御装置100、払出制御装置200、演出制御装置300、発射制御装置400及び電源装置500を備えている。
【0027】
(遊技制御装置関係)
まず、パチンコ機1の遊技制御装置100の構成と、この遊技制御装置100に接続される機器について、図4によって説明する。
なお、図4で矢印に添えて示す信号のうち、「主ID」とは主基板固有ID、「外部情報」とは遊技機状態信号、「賞球信号」とは払出制御装置から賞球として払い出される球数信号、「排出コマンド」とは遊技制御装置からの排出指令コマンド、「各種信号」とは払出制御装置から出される払出異常ステータス信号、シュート球切れスイッチ信号、オーバーフロースイッチ信号、ガラス枠開放スイッチ信号、前面枠開放スイッチ信号などをそれぞれ表す。
また、「外部情報」と「賞球信号」とを合わせて「外部・賞球」とも表す。
遊技制御装置100は、遊技を統括的に制御する主制御装置(主基板)であって、遊技用マイクロコンピュータ(以下、遊技用マイコンと称する)101及び検査装置接続端子102を備えている。遊技用マイコン101の詳細については後述する。
遊技制御装置100は制御装置に相当する。
また、遊技用マイコン101は遊技用演算処理装置(演算処理装置)としての機能を有し、本発明の第1の演算処理装置に相当する。
本実施例では、遊技制御装置100は主制御手段、停電監視手段、乱数更新手段、始動入賞記憶手段、第2始動記憶手段、事前判定手段、優先制御手段、変動パターン決定手段、変動表示ゲーム実行制御手段、判定手段、停止時間設定手段、特定遊技状態発生制御手段、主基板固有識別情報出力手段を構成する。
検査装置接続端子102は、例えばフォトカプラを含んで構成され、遊技用マイコン101から得られる各種の遊技情報を検査装置に伝送するためのケーブルが接続される端子である。
【0028】
遊技制御装置100には、第1始動口スイッチ120(図4及び図5では始動口1SW)、第2始動口スイッチ121(図4及び図5では始動口2SW)、ゲートスイッチ122、入賞口スイッチ123、下カウントスイッチ124、上カウントスイッチ125、磁気センサ126、電波センサ127、ガラス枠開放検出スイッチ211(ガラス枠開放検出SW)及び前面枠開放検出スイッチ212(前面枠開放検出SW)からの検出信号が入力される。
ここで、第1始動口スイッチ120は前記第1始動入賞口25に入賞した遊技球を1個ずつ検出する入賞球検出用のセンサであり、第2始動口スイッチ121は前記第2始動入賞口26に入賞した遊技球を1個ずつ検出する入賞球検出用のセンサである。
下カウントスイッチ124は前記変動入賞装置27の大入賞口に入賞した遊技球を検出する同様のセンサである。上カウントスイッチ125は第2変動入賞装置33の第2大入賞口に入賞した遊技球を検出する同様のセンサである。
本実施例では、下カウントスイッチ124が2つ設けられ、変動入賞装置27の大入賞口内に流入した遊技球は何れかの下カウントスイッチ124に検出されるようになっている。このように下カウントスイッチ124を複数設けることで、大入賞口内に流入した遊技球を迅速に検出できる。
また、入賞口スイッチ123は一般入賞口28〜31に対して設けられた同様のセンサであり、一般入賞口がn個あるときには、それぞれに1個ずつ、全体としてn個設けられる。なお、一般入賞口のそれぞれに1個ずつセンサを設けるのではなく、複数の一般入賞口に対して、全体で1個のセンサを設けるようにしてもよい。ゲートスイッチ122は前記普図始動ゲート32を通過する遊技球を1個ずつ検出するセンサである。
これら遊技球を検出する上記各センサ120、121、122、123、124,125は、本例では近接スイッチであり、ハイレベルが11Vでロウレベルが7Vのような負論理の検出信号を出力するように回路構成されている。
【0029】
また、磁気センサ126や電波センサ127は、遊技盤20の裏面等に設けられ、磁気又は電波によって不正を検出するセンサである。例えば、磁気センサ126は遊技盤20における一般入賞口28、30、31及び変動入賞装置27の第1大入賞口(大入賞口27a)のそれぞれに配置(つまり4箇所に配置)され、一般入賞口一般入賞口28、30、31、変動入賞装置27の第1大入賞口の周辺に磁石を使って遊技球を積み上げ、各入賞口への入賞を容易にさせる等の不正を検知するためのセンサである。なお、磁気センサ126は上記のように4箇所に配置する構成でなく、それ以上の箇所に配置する構成であってもよい。
さらに、ガラス枠開放検出スイッチ211はパチンコ機前面のガラス枠5が開放されていることを検出するセンサである。前面枠開放検出スイッチ212はガラス枠5が取り付けられた前面枠4が開放されていることを検出するセンサである。
なお、遊技制御装置100には、上記各センサ120、121、122、123、124、125,126、127からの信号を処理する近接I/Fが設けられているが、詳細は図5を用いて後述する。
【0030】
ここで、遊技制御装置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などを備える。
【0031】
この実施例1では、電源装置500は、遊技制御装置100と別個に構成されているが、バックアップ電源部502及び制御信号生成部503は、別個の基板上あるいは遊技制御装置100と一体、即ち、主基板上に設けるように構成してもよい。遊技盤20及び遊技制御装置100は機種変更の際に交換の対象となるので、このように、電源装置500若しくは主基板とは別の基板にバックアップ電源部502及び制御信号生成部503を設けることにより、機種変更の際の交換の対象から外しコストダウンを図ることができる。
【0032】
上記バックアップ電源部502は、電解コンデンサのような大容量のコンデンサ1つで構成することができる。バックアップ電源は、遊技制御装置100の遊技用マイコン101(特に内蔵RAM)に供給され、停電中あるいは電源遮断後もRAMに記憶されたデータが保持されるようになっている。制御信号生成部503は、例えば通常電源部501で生成された32Vの電圧を監視して、それが例えば17V以下に下がると停電発生を検出して停電監視信号を変化させる(本例ではオンさせる)とともに、所定時間後にリセット信号を出力する。また、電源投入時や停電回復時にもその時点から所定時間経過後にリセット信号を出力する。
【0033】
RAMクリアスイッチ504からは初期化スイッチ信号が出力されるようになっており、初期化スイッチ信号はRAMクリアスイッチ504がオン状態にされたときに生成される信号で、遊技用マイコン101内のユーザワークRAMなどのRAMエリア及び払出制御装置200内の同様のRAMエリアに記憶されている情報を初期化する。
なお本例の場合、初期化スイッチ信号は電源投入時に読み込まれ、停電監視信号は遊技用マイコン101や払出用マイコン201が実行するメインプログラムのメインループの中で繰り返し読み込まれる。リセット信号は、制御システム全体をリセットさせる。
【0034】
次に、遊技制御装置100は、払出制御装置200、演出制御装置300、試射試験装置131(試験機関における試験時に接続される)、普電ソレノイド132、第1大入賞口ソレノイド(図4では第1大入賞口SOL)133、第2大入賞口ソレノイド(図4では第2大入賞口SOL)134及び一括表示装置35と接続されている。
遊技制御装置100からは外部情報端子板55を介して遊技制御装置100の固有ID、詳しくは遊技用マイコン101を識別可能な個体識別情報(主基板固有ID)及び外部情報が外部装置としての管理装置140に出力されるようになっている。
外部情報端子板55は遊技制御装置100とケーブルで接続されており、外部情報、遊技制御装置100の固有ID(主基板固有ID)を外部装置としての管理装置140に伝送する際の中継を行う。
なお、管理装置140は遊技店に設置された多数のパチンコ機からの情報(例えば、外部情報など)を収集して、営業に必要な情報の演算処理や集計表示などの処理を行う。
【0035】
ここで、外部情報としては、例えば遊技制御装置100に入力された信号を外部へ知らせる信号や、遊技進行の過程で発生する大当りを知らせる大当り信号、図柄を回動させるための条件となる始動口への入賞を知らせる始動口信号、図柄が回動開始、或いは、図柄の回動停止をトリガに図柄回転を知らせる図柄確定回数信号、遊技状態が遊技者に有利な状態であること(いわゆる確変状態、時短状態)を示す特典状態信号、等、外部へ報知する信号であり、これらを総称して遊技機状態信号と称している。
なお、特典状態信号は、大当り状態終了後に発生するため、“大当り状態+遊技者に有利な状態”期間中に出力される信号である。
また、遊技制御装置100からは払出制御装置200に対してパラレル通信でデータ(例えば、払出コマンド)が送信されるようになっている。一方、払出制御装置200から遊技制御装置100に対して、払出異常ステータス信号、シュート球切れスイッチ信号、オーバーフロースイッチ信号が出力される。各信号の内容は後述する。
【0036】
次に、遊技制御装置100に接続されている試射試験装置131などについて説明する。
試射試験装置131は、認定機関が遊技機の試射試験などを行うものである。普電ソレノイド132は第2始動入賞口26の開閉部材を開閉させるソレノイド、第1大入賞口ソレノイド133は変動入賞装置27の開閉部材を開閉させるソレノイド、第2大入賞口ソレノイド134は特別入賞装置33の開閉部材33aを開閉させるソレノイド、一括表示装置35は前述したように、いわゆる普図の表示や特図の表示、さらには特図や普図の始動記憶の保留表示や遊技状態の表示を行うものである。
また、遊技制御装置100からは演出制御装置300に対して、シリアル通信でデータ(例えば、演出コマンド)が送信されるようになっている。
ここで、遊技制御装置100では始動口25,26への入賞を第1始動口スイッチ120、第2始動口スイッチ121でそれぞれ検出して検出信号が入力されると、特図始動入賞数を4個の範囲で記憶して保留するともに、始動入賞の保留に基づく乱数の抽出により保留情報に関する先読みコマンドを生成して所定のタイミングで演出制御装置300へ送信する。また、始動入賞の記憶が保留されたとき、保留数に関する特図保留数コマンドを生成して、同様に演出制御装置300へ送信する。
上記構成の発明概念は、下記のように表される。
遊技制御装置は、
始動入賞口への遊技球の入賞に基づく始動入賞数を所定範囲で保留数として記憶する始動入賞記憶手段と、
前記始動入賞記憶手段によって始動入賞の記憶がされたとき、該記憶に基づく乱数の抽出により記憶情報に関する先読みコマンドを生成する先読みコマンド生成手段と、
前記始動入賞記憶手段によって始動入賞の記憶がされたとき、保留数に関する保留数コマンドを生成する保留数コマンド生成手段と、
備えていることを特徴とする遊技機。
【0037】
また、実施例1では始動口が2つ(始動口25,26)あるので、特図の始動記憶(特図始動記憶)の表示を2種類(特図1保留表示と特図2保留表示)行うようにし、特図変動表示ゲームとして、2種類の変動表示ゲーム(第1変動表示ゲームと第2変動表示ゲーム)を実行する構成である。そして、各始動口25,26への遊技球の入賞に基づいて先読みコマンド、保留数コマンドがそれぞれ別に生成される構成である。例えば、特図1の先読み保留情報、特図2の先読み保留情報、特図1,2の保留数コマンドというように、各始動口25,26に対応して個別に生成される。
上記構成の発明概念は、下記のように表される。
遊技球が入賞可能な始動入賞口は複数配置され、
前記始動入賞記憶手段は、
複数の各始動入賞口へのそれぞれの遊技球の入賞に基づく始動入賞数を保留数1、保留数2として区別して記憶し、
前記先読みコマンド生成手段は、
前記始動入賞記憶手段によって複数の各始動入賞口に対応するそれぞれの始動入賞の記憶がされたとき、該記憶に基づく乱数の抽出により記憶情報に関する先読みコマンドを各始動入賞口毎に区別して生成し、
前記保留数コマンド生成手段は、
前記始動入賞記憶手段によって各始動入賞の記憶がされたとき、保留数1、保留数2に関する保留数コマンドを各始動入賞口毎に区別して生成することを特徴とする遊技機。
【0038】
さらに、実施例1では、遊技制御装置100から演出制御装置300へ組となる変動パターンコマンド及び図柄コマンドが順次送信されるが、後の図柄コマンドを取りこぼした場合には、以下のような制御が行われる。
すなわち、先に送られる変動パターンコマンドを演出制御装置300が受信した時点で、前回の図柄変動終了から今回の変動パターンコマンド受信までの時間が規定時間(例えば、1秒)以内か否かを判定し、前回の図柄変動終了から今回の変動パターンコマンド受信までの時間が規定時間以内と判定されると、後で送られる図柄コマンドの受信を取りこぼしても、図柄の変動を開始する処理が行われ、前回の図柄変動終了から今回の変動パターンコマンド受信までの時間が規定時間を超えていると判定すると、図柄の変動を開始しない処理が行われる。そのため、遊技者に極力ストレスを与えない特図演出を行うことができる
その後、停止コマンドがくると、変動停止又は停止の続行となり、さらに、次のコマンドの組が正常に演出制御装置300へ送信された(組が成立)時点で、正規のコマンド情報に基づいて正しい演出が実行される。
【0039】
(演出制御装置関係)
次に、演出制御装置300の構成と、この演出制御装置300に接続される機器について説明する。
演出制御装置300は、主制御用マイコン、該主制御用マイコンの制御下でもっぱら映像制御を行う映像制御用マイコン、表示装置41への映像表示のための画像処理を行うグラフィックプロセッサとしてのVDP、各種のメロディや効果音などの出力を制御する音源LSIなどを有しているが、細かい構成については、図6で後述する。
演出制御装置300は遊技制御装置100の遊技用マイコン101からの制御コマンド(8ビットのデータ信号)を解析し、演出内容を決定して表示装置41の出力映像の内容を制御したり、音源LSIへの再生音の指示をしてスピーカ12a、12bを駆動して効果音等を出したり、前述した装飾LED301の駆動制御などの処理を実行する。また、演出制御装置300は遊技制御装置100からエラー報知の指示を受けると、エラー報知LED302に対して信号を出力してオンさせる。
ここで、遊技制御装置100の遊技用マイコン101から演出制御装置300へ送信されるコマンドには、単独コマンド(例えば、停止コマンド)の他に、単独では演出を開始せず、組で効果を発揮するものがあるが、それは例えば特図変動開始時の「変動パターンコマンド+図柄指定コマンド」などであるが、コマンドの種類の詳細などについては後述する。
【0040】
上記の他に主要なコマンドを説明すると、確率情報コマンドがある。これは、特図ゲームモードフラグに対応して準備されるもので(後述のステップS974,S984等参照)、そのときの確率状態を反映するフラグである。
なお、遊技制御装置100から送信した確率情報コマンドを、例えば演出制御装置300が受信しても、そのコマンドだけでは直ちに表示装置41の画面が変化するわけではなく、画面を演出するための内部的なパラメータの変更をするだけである。その後、画面を変化するコマンド(変動系、客待ちデモコマンドなど)を受信すると、その時の確率状態として反映する構成である。
また、大当り中は低確率と決まっているので、確率情報コマンドを受けなくとも大当り系コマンドを受信すると、内部パラメータを強制的に低確率に書き換える場合もある。
確率情報コマンドで分かる情報としては、例えば以下のようなものがある。
・「低確率・時短あり(所謂100回転の時短中を指す)」
・「高確率・時短あり(所謂確変中)」
・「低確率・時短なし」
ここで、遊技機(パチンコ機1)における「確率の情報」とは「確変か否か」だけでなく、「時短中か否か」という情報も含んでいる。遊技機の状態としては「低確率・時短なし」、「低確率・時短あり」、「高確率・時短あり」、「高確率・時短なし」の4種類がある。本実施例では上記のうちの3種類(「高確率・時短なし」を除く)を使用しており、各状態の変化するタイミングで遊技制御装置100から送信される。
なお、コマンド通信はシリアル通信方式でもよいし、あるいはパラレル通信方式でもよい。本実施例では、コマンド通信としてシリアル通信方式を採用している。
【0041】
(払出制御装置関係)
次に、払出制御装置200の構成と、この払出制御装置200に接続される機器について説明する。
払出制御装置200は、遊技球の払出(賞球払出又は貸球払出)を制御する払出用マイクロコンピュータ(以下、払出用マイコンと称する)201、エラーナンバー表示器202、エラー解除スイッチ203、検査装置接続端子204を備えている。払出用マイコン201の詳細については後述する。
なお、払出用マイコン201は払出用演算処理装置(演算処理装置)としての機能を有し、本発明の第2の演算処理装置に相当する。
検査装置接続端子204は、例えばフォトカプラを含んで構成され、払出用マイコン201から得られる払い出しに関連する各種の情報を検査装置に伝送するためのケーブルが接続される端子である。エラーナンバー表示器202は払出制御の処理でエラーがある場合に、エラーの内容に応じて特定のナンバーを点灯させる。エラー解除スイッチ203は払出制御の処理でエラーがあって処理が停止した場合などに、操作されるとエラーを解除する信号を出すものである。
【0042】
払出制御装置200の入力側に接続される機器としては、オーバーフロースイッチ213、電波センサ214、払出球検出スイッチ215及びシュート球切れスイッチ216がある。
オーバーフロースイッチ213は下皿10の遊技球が過剰であることを検出するスイッチ、電波センサ214は不正などの異常な電波を検知するセンサ、払出球検出スイッチ215は払出ユニット53(図3)によって上皿7に向けて払い出される遊技球(賞球あるいは貸球)を1個ずつ検出するスイッチ、シュート球切れスイッチ216は貯留タンク51に遊技球を供給するシュートに遊技球が無いことを検出するスイッチである。
なお、電波センサ214は払い出される遊技球が払出球検出スイッチ215を通過するときに、電波によって当該センサを反応させないようにして規定数以上の遊技球を獲得する等の不正を検出するセンサである。電波センサ214はその他の不正な電波を検出するものでもよい。
【0043】
また、払出制御装置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からバックアップ電源が供給される構成となっている。
【0044】
払出制御装置200は、遊技制御装置100から受信した払出コマンドに基づいて作成した賞球信号(賞球として払い出した球数情報)を外部情報端子板55を介して外部装置としての管理装置140に出力するとともに、払出制御装置200の固有ID、詳しくは払出用マイコン201を識別可能な個体識別情報(払出固有ID)を外部情報端子板55を介して管理装置140に出力する。
なお、カードユニット551にて払出固有IDの正当性を判定する場合には、外部情報端子板55を介して払出固有IDをカードユニット551に出力する構成とする。
外部情報端子板55は払出制御装置200とケーブルで接続されており、賞球信号、払出制御装置200の固有ID(払出固有ID)を外部装置としての管理装置140に伝送する際の中継を行う。
ここで、払出制御装置200は従制御手段、払出基板固有識別情報出力手段を構成する。
【0045】
発射制御装置400は払出制御装置200から必要な電源の供給を受けるとともに、発射許可信号、停電検出信号を受けるようになっている。発射制御装置400は発射操作ハンドル11の操作に従って遊技球を発射する発射モータ401を制御するとともに、発射制御装置400にはタッチスイッチ402や発射停止スイッチ403からの信号が入力されている。タッチスイッチ402は遊技者が発射操作ハンドル11にタッチしているか否かを検出するものであり、発射停止スイッチ403は遊技球の発射を一時的に停止するもので、遊技者によって操作されるものである。
【0046】
次に、遊技制御装置100の詳細な構成について、図5によって説明する。
遊技制御装置100は、遊技を統括的に制御する主制御装置であって、主基板(つまり主基板に形成された回路)に相当し、具体的には図5に示す回路よりなる。この遊技制御装置100は、図5に示すように、遊技用マイクロコンピュータ(つまり、遊技用マイコン)101を有するCPU部150、入力ポートなどを有する入力部151、出力ポートなどを有する出力部152、CPU部150と入力部151と出力部152との間を接続するデータバス153などからなる。
【0047】
上記CPU部150は、アミューズメントチップ(IC)と呼ばれる遊技用マイコン101と、後述する近接I/F163からの信号(始動入賞検出信号)を論理反転して遊技用マイコン101に入力させるインバータなどからなる反転回路112と、水晶振動子のような発振子を備え、CPUの動作クロックやタイマ割込み、乱数生成回路の基準となるクロックを生成する発振回路113などを有する。
遊技用マイコン101は、CPU(中央処理ユニット:マイクロプロセッサ)101A、読出し専用のROM(リードオンリメモリ)101B及び随時読出し書込み可能なRAM(ランダムアクセスメモリ)101Cを備える。
【0048】
ROM101Bは、遊技制御のための不変の情報(プログラム、固定データ、各種乱数の判定値等)を不揮発的に記憶し、RAM101Cは、遊技制御時にCPU101Aの作業領域や各種信号や乱数値の記憶領域として利用される。ROM101B又はRAM101Cとして、EEPROMのような電気的に書換え可能な不揮発性メモリを用いてもよい。
【0049】
CPU101Aは、ROM101B内の遊技制御用プログラムを実行して、払出制御装置200や演出制御装置300に対する制御信号(コマンド)を生成したり、普電ソレノイド132、第1大入賞口ソレノイド133、第2大入賞口ソレノイド134や一括表示装置35の駆動信号を生成したりしてパチンコ機1全体の制御を行う。
また、図示しないが、遊技用マイコン101は、特図変動表示ゲームの大当り判定用乱数や大当りの図柄を決定するための大当り図柄用乱数、普図変動表示ゲームの当り判定用乱数等をハード的に生成するための乱数生成回路と、発振回路113からの発振信号(原クロック信号)に基づいてCPU101Aに対する所定周期(例えば、4ミリ秒)のタイマ割込み信号や乱数生成回路の更新タイミングを与えるクロックを生成するクロックジェネレータと、を備えている。
【0050】
ここで、遊技制御装置100及び該遊技制御装置100によって駆動される普電ソレノイド132、第1大入賞口ソレノイド133、第2大入賞口ソレノイド134などの電子部品には、電源装置500で生成されたDC32V,DC12V,DC5Vなど所定のレベルの直流電圧が供給されて動作可能にされる。
電源装置500は、24Vの交流電源から上記DC32Vの直流電圧を生成するAC−DCコンバータやDC32Vの電圧からDC12V,DC5Vなどのより低いレベルの直流電圧を生成するDC−DCコンバータなどを有する通常電源部501と、遊技用マイコン101の内部のRAMに対して停電時に電源電圧を供給するバックアップ電源部502と、停電監視回路や初期化スイッチを有し遊技制御装置100に停電の発生、回復を知らせる停電監視信号や初期化スイッチ信号、リセット信号などの制御信号を生成して出力する制御信号生成部503などを備える。
【0051】
この実施形態では、電源装置500は、遊技制御装置100と別個に構成されているが、バックアップ電源部502及び制御信号生成部503は、別個の基板上あるいは遊技制御装置100と一体、即ち、主基板上に設けるように構成してもよい。但し、遊技盤20及び遊技制御装置100は機種変更の際に交換の対象となるので、このように、電源装置500若しくは主基板とは別の基板にバックアップ電源部502及び制御信号生成部503を設けることにより、機種変更の際の交換の対象から外しコストダウンを図ることができる。
【0052】
上記バックアップ電源部502は、電解コンデンサのような大容量のコンデンサ1つで構成することができる。バックアップ電源は、遊技制御装置100の遊技用マイコン101(特に内蔵RAM101C)に供給され、停電中あるいは電源遮断後もRAMに記憶されたデータが保持されるようになっている。制御信号生成部503は、例えば通常電源部501で生成された32Vの電圧を監視してそれが例えば17V以下に下がると、停電発生を検出したとして停電監視信号を変化させる(例えば、オンさせる)とともに、所定時間後にリセット信号を出力する。また、電源投入時や停電回復時にもその時点から所定時間経過後にリセット信号を出力する。
【0053】
初期化スイッチ信号は、RAMクリアスイッチ504(初期化スイッチ)がオン状態にされたときに生成される信号で、遊技用マイコン101内のRAM101C及び払出制御装置200内のRAMに記憶されている情報を強制的に初期化する。なお本例の場合、初期化スイッチ信号は電源投入時に読み込まれ、停電監視信号は遊技用マイコン101が実行するメインプログラムのメインループの中で繰り返し読み込まれる。リセット信号は、制御システム全体をリセットさせる。
【0054】
次に、遊技制御装置100の入力部151には、入力ポートとして、第1入力ポート160、第2入力ポート161及び第3入力ポート162が設けられている。この入力部151には、第1始動口スイッチ120、第2始動口スイッチ121、ゲートスイッチ122、入賞口スイッチ123、下カウントスイッチ124、上カウントスイッチ125、磁気センサ126、電波センサ127、ガラス枠開放検出スイッチ211及び前面枠開放検出スイッチ212からの検出信号が入力される。
入力部151には、上記の各スイッチ120〜124、127から入力される検出信号を0V−5Vの正論理の信号に変換するインタフェースチップ(近接I/F)163が設けられている。近接I/F163は、入力の範囲が7V−11Vとされることで、近接スイッチ(上記各スイッチ120〜124、127)のリード線が不正にショートされたり、スイッチがコネクタから外されたり、リード線が切断されてフローティングになったような異常状態を検出でき、このような異常状態を検出すると異常検知信号を出力する構成とされている。また近接I/F163には、前記のような信号レベル変換機能を可能にするため、電源装置500から通常のICの動作に必要な例えば5Vのような電圧の他に、12Vの電圧が供給されている。
【0055】
ここで、近接I/F163の出力(異常検知信号除く)のうちの一部(上記各スイッチ120〜124からの出力)は第2入力ポート161へ供給され、データバス153を介して遊技用マイコン101に読み込まれるとともに、主基板としての遊技制御装置100から中継基板170を介して試射試験装置131へ供給されるようになっている。
また、近接I/F163の出力のうち電波センサ127の検出信号は、第3入力ポート162へ供給され、データバス153を介して遊技用マイコン101に読み込まれるようになっている。
近接I/F163の出力のうち第1始動口スイッチ120と第2始動口スイッチ121の検出信号は、第2入力ポート161の他、反転回路112を介して遊技用マイコン101へ入力されるように構成されている。反転回路112を設けているのは、遊技用マイコン101の信号入力端子が、マイクロスイッチなどからの信号が入力されることを想定し、かつ負論理、即ち、ロウレベル(0V)を有効レベルとして検知するように設計されているためである。なお、遊技用マイコン101の信号入力端子が正論理を有効レベルとして検知できる場合は、反転回路112は不要となる。
さらに、近接I/F163の出力のうちの下カウントスイッチ124からの信号は異常検知信号1として第3入力ポート162へ供給され、データバス153を介して遊技用マイコン101に読み込まれるようになっている。
【0056】
上カウントスイッチ125からの検出信号は近接I/F165に入力されている。
ここで、前述した近接I/F163と近接I/F165の2つを設けているのは、近接I/F163の入力端子数が限られているためである。近接I/F165は不足する入力端子数に応じて近接I/F163よりも小型のものを用いることで、コストを削減するようにしている。なお、近接I/F163として必要な入力端子数を備えるものを用い、近接I/F165を設けないようにしてもよい。
近接I/F165は上カウントスイッチ125から入力される検出信号を0V−5Vの正論理の信号に変換するインタフェースチップであり、近接I/F163と同様に、入力の範囲が7V−11Vとされることで、近接スイッチ(上記上カウントスイッチ125)のリード線が不正にショートされたり、スイッチがコネクタから外されたり、リード線が切断されてフローティングになったような異常状態を検出でき、このような異常状態を検出すると異常検知信号を出力する構成とされている。また近接I/F165には、前記のような信号レベル変換機能を可能にするため、電源装置500から通常のICの動作に必要な例えば5Vのような電圧の他に、12Vの電圧が供給されている。
また、近接I/F165の出力のうち上カウントスイッチ125からの信号は異常検知信号2として3入力ポート162へ供給され、データバス153を介して遊技用マイコン101に読み込まれるようになっている。
さらに、上カウントスイッチ125の出力は近接I/F165を介して第2入力ポート161へ供給され、データバス153を介して遊技用マイコン101に読み込まれるとともに、主基板としての遊技制御装置100から中継基板170を介して試射試験装置131へ供給されるようになっている。
【0057】
上述したように、第3入力ポート162には磁気センサ126からの信号が入力されるとともに、電波センサ127からの信号が近接I/F163を介して入力され、上カウントスイッチ125からの信号が異常検知信号2として近接I/F165を介して入力され、さらに下カウントスイッチ124からの信号が異常検知信号1として近接I/F163を介して入力される。
なお、磁気センサ126について説明すると、図5では磁気センサスイッチ126が1個のように示されているが、これは遊技制御装置100への入力が1本になっているだけで、実際には複数の磁気センサ(本例では4個)が搭載され、中継基板(センサと主基板の間に存在。図示省略)上でワイヤードオア接続されている。
ここで、第3入力ポート162が保持しているデータは、遊技用マイコン101が第3入力ポート162に割り当てられているアドレスをデコードすることによりイネーブル信号CE3をアサート(有効レベルに変化)することよって、読み出すことができる(他のポートも同様)。第1入力ポート160のイネーブル信号はCE1であり、第2入力ポート161のイネーブル信号はCE2である。
【0058】
一方、第1入力ポート160には、ガラス枠開放検出スイッチ211や前面枠開放検出スイッチ212からの信号、及び払出制御装置200からの信号が入力されている。そしてこれら信号は、第1入力ポート160からデータバス153を介して遊技用マイコン101に供給されている。払出制御装置200からの信号には、払出異常を示すステータス信号、払出し前の遊技球の不足を示すシュート球切れスイッチ信号、オーバーフローを示すオーバーフロースイッチ信号がある。オーバーフロースイッチ信号は、下皿10に遊技球が所定量以上貯留されていること(満杯になったこと)を検出したときに出力される信号である。
【0059】
また入力部151には、電源装置500からの停電監視信号や初期化スイッチ信号、リセット信号などの信号を遊技用マイコン101等に入力するためのシュミットトリガ回路164が設けられており、シュミットトリガ回路164はこれらの入力信号からノイズを除去する機能を有する。電源装置500からの信号のうち停電監視信号と初期化スイッチ信号は、一旦第1入力ポート160に入力され、データバス153を介して遊技用マイコン101に取り込まれる。つまり、前述の各種スイッチからの信号と同等の信号として扱われる。遊技用マイコン101に設けられている外部からの信号を受ける端子の数には制約があるためである。
【0060】
一方、シュミットトリガ回路164によりノイズ除去されたリセット信号RSTは、遊技用マイコン101に設けられているリセット端子に直接入力されるとともに、出力部152の各ポート(後述するポート171,175,176,177、180)に供給される。また、リセット信号RSTは出力部152を介さずに直接中継基板170に出力することで、試射試験装置へ出力するために中継基板170のポート(図示省略)に保持される試射試験信号をオフするように構成されている。
また、リセット信号RSTを中継基板170を介して試射試験装置へ出力可能に構成するようにしてもよい。なお、リセット信号RSTは入力部151の各入力ポート160乃至162には供給されない。リセット信号RSTが入る直前に遊技用マイコン101によって出力部152の各ポートに設定されたデータはシステムの誤動作を防止するためリセットする必要があるが、リセット信号RSTが入る直前に入力部151の各ポートから遊技用マイコン101が読み込んだデータは、遊技用マイコン101のリセットによって廃棄されるためである。
【0061】
次に、遊技制御装置100の出力部152は、データバス153に接続された出力ポートとして、第1ポート171、第3ポート175、第4ポート176、第5ポート177及び第6ポート180を備える。なお、遊技制御装置100から払出制御装置200へは、上記第1ポート171を介してパラレル通信でデータが送信される。また、遊技制御装置100から演出制御装置200へは、バッファ(シュミットトリガバッファ)173を介してシリアル通信でデータが送信される。
第1ポート171は、払出制御装置200へ出力する4ビットのデータ信号(例えば、賞球払出しのコマンドやデータ)と、このデータ信号の有効/無効を示す制御信号(データストローブ信号)とを生成する。
バッファ173は、演出制御装置300の側から遊技制御装置100へ信号を入力できないようにするため、即ち、片方向通信を担保するために、遊技制御装置100からのデータ信号を演出制御装置300へ出力することのみを許容する単方向のバッファである。なお、第1ポート171から払出制御装置200へ出力する信号に対しても同様のバッファを設けるようにしてもよい。
【0062】
第3ポート175は、変動入賞装置27の開閉部材27bを開閉させる第1大入賞口ソレノイド133、第2変動入賞装置33の開閉部材33aを開閉させる第2大入賞口ソレノイド134、第2始動入賞口26の開閉部材26aを開閉させるソレノイド(以下、適宜、普電ソレノイドという)132の各開閉データを出力するための出力ポートである。
第4ポート176は、一括表示装置35に表示する内容に応じてLEDのアノード端子が接続されているセグメント線のオン/オフデータを出力するための出力ポートである。
第5ポート177は、一括表示装置35のLEDのカソード端子が接続されているデジット線のオン/オフデータを出力するための出力ポートである。
第6ポート180は、大当り情報などパチンコ機1に関する情報を外部情報信号(図4に示す外部情報)として外部情報端子板55へ出力するための出力ポートである。なお、外部情報端子板55から出力された情報は、例えば遊技店に設置された情報収集端末や管理装置140に供給される。また、外部情報端子板55にはフォトリレー55aが搭載されており、このフォトリレー55aを介して外部情報、遊技制御装置100の固有ID(主基板固有ID)、払出制御装置200の固有ID(払出固有ID)が外部装置としての管理装置140に伝送される。なお、フォトカプラでは極性があるので、接続に注意する必要があるが、上記のようにフォトリレー55aを用いれば極性が不要となり、便利であるという利点がある。
なお、カードユニット551にて払出固有IDの正当性を判定する場合には、外部情報端子板55を介して払出固有IDをカードユニット551に出力する構成とする。
【0063】
なお出力部152には、データバス153に接続され図示しない認定機関の試射試験装置へ変動表示ゲームの特図図柄情報を知らせるデータや大当りの確率状態を示す信号などを中継基板170を介して出力するバッファ174が実装可能に構成されている。このバッファ174は遊技店に設置される実機(量産販売品)としてのパチンコ機1の遊技制御装置100(主基板)には実装されない部品である。なお、前記近接I/F163から出力される始動口SWなど加工の必要のないスイッチの検出信号は、バッファ174を通さずに中継基板170を介して試射試験装置へ供給される。
【0064】
一方、磁気センサ126や電波センサ127のようにそのままでは試射試験装置へ供給できない検出信号は、一旦遊技用マイコン101に取り込まれて他の信号若しくは情報に加工されて、例えば遊技機が遊技制御できない状態であることを示すエラー信号としてデータバス153からバッファ174、中継基板170を介して試射試験装置へ供給される。なお、中継基板170には、上記バッファ174から出力された信号を取り込んで試射試験装置へ供給するポートや、バッファを介さないスイッチの検出信号の信号線を中継して伝達するコネクタなどが設けられている。中継基板170上のポートには、遊技用マイコン101から出力されるチップイネーブル信号CEも供給され、該信号CEにより選択制御されたポートの信号が試射試験装置へ供給されるようになっている。
【0065】
また出力部152には、複数の駆動回路(第1ドライバ178a〜第4ドライバ178d)が設けられている。第1ドライバ178aは、第3ポート175から出力される第1大入賞口ソレノイド133、第2大入賞口ソレノイド134、普電ソレノイド132の各開閉データ信号を受けて、それぞれのソレノイド駆動信号を生成し出力する。第2ドライバ178bは、第4ポート176から出力される一括表示装置35の電流供給側のセグメント線のオン/オフ駆動信号を出力する。第3ドライバ178cは、第5ポート177から出力される一括表示装置35の電流引き込み側のデジット線のオン/オフ駆動信号を出力する。第4ドライバ178dは、第6ポート180から管理装置等の外部装置へ供給する外部情報信号を外部情報端子板55へ出力するものである。
【0066】
なお、第1ドライバ178aには、32Vで動作する第1大入賞口ソレノイド133、第2大入賞口ソレノイド134、普電ソレノイド132を駆動できるようにするため、電源電圧としてDC32Vが電源装置500から供給される。
また、前記セグメント線を駆動する第2ドライバ178bには、DC12Vが供給される。また前記デジット線を駆動する第3ドライバ178cは、表示データに応じたデジット線を電流で引き抜くためのものであるため、電源電圧は12V又は5Vのいずれであってもよい。なお一括表示装置35は、12Vを出力する第2ドライバ178bにより前記セグメント線を介して所定のLEDのアノード端子に電流が流し込まれ、接地電位を出力する第3ドライバ178cにより所定のLEDのカソード端子からセグメント線を介して電流が引き抜かれることで、ダイナミック駆動方式で順次選択されたLEDに電源電圧が流れて所定のLEDが点灯する。また第4ドライバ178dは、外部情報信号に12Vのレベルを与えるため、DC12Vが供給される。
【0067】
さらに、出力部152には、外部の検査装置180へ各遊技機の識別コードやプログラムなどの情報を送信するためのフォトカプラ179が設けられている。フォトカプラ179は、遊技用マイコン101が検査装置180との間でシリアル通信によってデータの送受信を行なえるように双方通信可能に構成されている。なお、かかるデータの送受信は、通常の汎用マイクロプロセッサと同様に遊技用マイコン101が有するシリアル通信端子を利用して行なわれるため、入力ポート160乃至162のようなポートは設けられていない。
【0068】
次に、演出制御装置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は該2ndCPUからのコマンドやデータに従って表示装置41への映像表示のための画像処理を行うという構成も考えられるが、本実施例では、高性能化した1stCPU311のみを備え、配置スペースやコストの点で有利にしている。
なお、主制御用マイコン(1stCPU)と、該1stCPUの制御下でもっぱら映像制御を行う映像制御用マイコン(2ndCPU)の2つを配置する構成を採用してもよい。
【0069】
上記主制御用マイコン(1stCPU)311には、CPUが実行するプログラムを格納したPROM(プログラマブルリードオンリメモリ)321やRTC(real time clock)325が接続されるとともに、VDP312が接続される。
RTC325は時刻を刻むクロック素子であり、設定により実時刻に合わせることが可能であり、そのクロック信号は主制御用マイコン311に送られる、主制御用マイコン311はRTC325からの信号を用いて、例えば遊技店のイベント告知や特殊演出など時刻に関した演出制御が可能になっている。
一方、VDP312にはキャラクタ画像や映像データが記憶された画像ROM322が接続され、音源LSI313には音声データが記憶された音声ROM323が接続されている。なお、画像ROM322には映像データとして複数の動画(ムービー)が格納されている。
ここで、キャラクタデータは画像ROM322に格納されているが、キャラクタの動きの情報を表すモーションデータやモーションデータの繋がりを定義しているシナリオデータはPROM321に格納されている。
画像ROM322はキャラクタデータ記憶手段に相当し、PROM(制御ROM)321はモーションテーブル記憶手段及びシナリオテーブル記憶手段に相当する。
主制御用マイコン311は、遊技制御装置100の遊技用マイコン101からの制御コマンド(前記バッファ173から出力されるデータ信号)を解析し、演出内容を決定して表示装置41の出力映像の内容を指示したり、音源LSI313への再生音の指示、前述した装飾装置42、43や演出装置44、45の駆動制御などの処理を実行する。
ここで、本実施例では表示装置41、盤装飾装置42、枠装飾装置43、盤演出装置44、枠演出装置45、スピーカ12a,12b等は演出手段を構成する。
【0070】
例えば、変動表示ゲームを実行する際には、遊技制御装置100から停止図柄の組み合わせ(結果態様)のデータと、リーチ系統(或いは変動時間)のデータとを含むコマンド(例えば後述する変動パターンコマンド)が、演出制御装置300に送信される構成となっており、これを受けた主制御用マイコン311は、この停止態様と変動時間を満足する変動態様を選択して、VDP312を介して表示装置41に所定の特図を変動表示させて最終的に特定の図柄の組み合わせ(結果態様)を導出表示させる特図変動表示ゲームの制御を行う構成となっている。
なお、演出制御装置300の制御で実際に実施される特図の変動表示等の態様は、遊技制御装置100からのコマンドによって一義的に決定されてもよいが、上記コマンドで与えられた条件の範囲で、演出制御装置300の主制御用マイコン311が乱数抽出などによって態様を最終的に選択する構成(演出制御装置300にも態様を選択する、ある程度の裁量が与えられた構成)となっている。
そのため、本実施例ではrand関数を用いてメイン処理の制御周期毎に最低1回は擬似乱数の更新を行い、所定の条件が成立する度に、乱数シ−ド値が更新され、乱数シ−ド値によって指定される発生系列に基づいて乱数が生成される構成になっている。
【0071】
ここで、主制御用マイコン311の作業領域を提供するRAM311aは、チップ内部に設けられている。なお、作業領域を提供するRAM311aはチップ外部に設けるようにしてもよい。
また、特に限定されるわけではないが、主制御用マイコン311と音源LSI313との間は、シリアル方式でデータの送受信が行なわれ、主制御用マイコン311とVDP312との間は、パラレル方式でデータの送受信が行なわれるように構成されている。一般には、パラレル方式でデータを送受信することで、シリアルの場合よりも短時間にコマンドやデータを送信することができる。
VDP312には、画像ROM322から読み出されたキャラクタなどの画像データを展開したり加工したりするのに使用される超高速なVRAM(ビデオRAM)312aや、画像を拡大、縮小処理するためのスケーラ312b、LVDS(小振幅信号伝送)方式で表示装置41へ送信する映像信号を生成する信号変換回路312cなどが設けられている。
【0072】
VDP312から主制御用マイコン311へは表示装置41の映像とガラス枠5や遊技盤20に設けられているランプ類の点灯を同期させるために垂直同期信号VSYNCが入力される。さらに、VDP312から主制御用マイコン311へは、VRAMへの描画の終了等処理状況を知らせるため割込み信号INT0〜nと、主制御用マイコン311からのコマンドやデータの受信待ちの状態にあることを知らせるためのウェイト信号WAITと、が入力される。また、主制御用マイコン311と音源LSI313との間は、ハンドシェイク方式でコマンドやデータの送受信を行うために、呼び掛け(コール)信号CTSと応答(レスポンス)信号RTSが交換される。
【0073】
また、演出制御装置300には、遊技制御装置100の遊技用マイコン101から送信されてくるコマンド(前記バッファ173から出力されるデータ信号)を受信するインタフェース回路(コマンドI/F)331が設けられている。このコマンドI/F331を介して、上記遊技用マイコン101からの制御コマンド、例えば飾り特図保留数コマンド、特図種別・図柄情報コマンド、変動パターン乱数コマンド、客待ちデモコマンド、変動パターンコマンド、及びファンファーレコマンド等を、主制御用マイコン311が受信する。
なお、遊技制御装置100の遊技用マイコン101から送信されてくるコマンドは、必要に応じて主制御用マイコン311に内蔵されて作業領域を提供するRAM311aに記憶される。
この場合、上記コマンドはRAM311aのコマンド記憶領域のようなエリアに記憶される。詳しくは、遊技制御装置100から演出制御装置300へ送られるコマンドのうち、例えば組となる変動パターンコマンド及び図柄コマンドが順次送信される場合、これらのコマンドはRAM311aの記憶エリアのうち、コマンド記憶領域に順次記憶保持され、組が成立した時点でコマンド記憶領域から読みだされて主制御用マイコン311が演出処理を実行するようになっている。なお、コマンド記憶領域は、第1コマンド記憶領域及び第2コマンド記憶領域に分けた構成でもよい。
今回の実施例1では、停止図柄コマンド→変動パターンコマンドの順で送られてくる構成である。
なお、変動パターンコマンド→図柄停止コマンドの順で送る構成を採用した場合には、例えば先に送られる変動パターンコマンドを受信した時点で、演出制御装置300では主制御用マイコン311のRAM311aの演出に関する記憶領域をデフォルト値(例えば、はずれ図柄での図柄停止状態)に設定する動作を行うようにしてもよい。その場合、上記の「演出に関する記憶領域」はデフォルト値を設定するエリアであり、コマンド記憶領域とは別にする。
【0074】
また、遊技制御装置100の遊技用マイコン101から送信されてくるコマンドを受信したり、解析するために、主制御用マイコン311に内蔵されて作業領域を提供するRAM311aには、受信コマンドバッファ(以下、適宜、受信バッファと短く表記することがある)及び解析データ格納領域が設けられている。
受信バッファは受信コマンドを順番に格納していくもので、リングバッファ形式のものが使用されている。
ここで、リングバッファとは、一定のメモリ領域をリング状のメモリ領域に見えるように制御される一時的にデータを蓄えるための領域のことであり、このようなリングバッファを使用することで、送信処理と受信処理を別々に行うことが可能となり、また、データの取りこぼし防止と、コマンド受信処理の渋滞回避などのためにも有効である。
一方、解析データ格納領域は受信バッファに格納されているコマンドのうち、所定数のコマンドが複写により格納されるもので、先入れ先出し処理を行うFIFO(First-in-First-out)形式のものが使用されている。
ここで、FIFOとは、データの格納と取り出しに関する方式のひとつで、最初に格納したデータから先に取り出していく方式(つまり、先入れ先出し)のことである。
FIFOを用いれば、高速な通信処理が可能な他、通信とデータの読み出しが非同期に行える利点がある。
上記受信コマンドバッファは、受信バッファ手段に相当し、解析データ格納領域は解析データ格納手段に相当する。
遊技制御装置100の遊技用マイコン101はDC5Vで動作し、演出制御装置300の主制御用マイコン311はDC3.3Vで動作するため、コマンドI/F331には信号のレベル変換の機能が設けられている。
【0075】
さらに、演出制御装置300には、前述の盤装飾装置42のLEDを駆動制御する盤装飾LED制御回路332、前述の枠装飾装置43のLEDを駆動制御する枠装飾LED制御回路333、前述の盤演出装置44のモータやソレノイドを駆動制御する盤演出モータ/SOL制御回路334、前述の枠演出装置45のモータ(例えば前記ムービングライト14を動作させるモータ等)を駆動制御する枠演出モータ制御回路335が設けられている。これらの制御回路332〜335は、アドレス/データバス340を介して主制御用マイコン(1stCPU)311と接続されている。なお、盤装飾装置42や枠装飾装置43の発光源として、LED以外の発光源が使用されてもよい。
【0076】
また、演出制御装置300には、ガラス枠5に設けられた演出ボタン9に内蔵されている演出ボタンSW46や上記盤演出装置44、枠演出装置45内のモータの初期位置を検出する演出モータSW47のオン/オフ状態を検出して主制御用マイコン(1stCPU)311へ検出信号を入力するSW入力回路336、ガラス枠5に設けられた上スピーカ12aを駆動するオーディオパワーアンプなどからなるアンプ回路337a、操作パネル6に設けられた下スピーカ12bを駆動するアンプ回路337bが設けられている。
【0077】
電源装置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に設けるようにしてもよい。
【0078】
電源装置500の制御信号生成部503により生成されたリセット信号RSTは、主制御用マイコン311、VDP312、音源LSI313、前述の制御回路332〜335、アンプ回路337a、337bに供給され、これらをリセット状態にする。また、この実施例においては、主制御用マイコン311の有する汎用のポートを利用して、VDP312に対するリセット信号を生成して供給する機能を有するように構成されている。これにより、主制御用マイコン311とVDP312の動作の連携性を向上させることができる。
【0079】
また、本実施例では演出制御装置300に無線モジュール360が設けられており、無線モジュール360はCPU360a、ROM360b、RAM360cにより構成される。なお、無線モジュール360には電源装置500から所定の電源が供給される。
無線モジュール360は主制御用マイコン311に接続され、主制御用マイコン311からの指令に従って自身の遊技機(パチンコ機1)と他の遊技機370との間で無線通信(後述のサブ間通信)を行い、その通信によって互いの遊技機の状態を情報交換したり、画像やキャラクタの伝送や交換などの制御を行い、各遊技機の表示装置に相互に関連性のある画像やキャラクタを同調あるいは同期させながら表示させる。CPU360aは無線通信の制御や画像、キャラクタの伝送などの処理を行い、ROM360bはCPU360aの実行するプログラムを格納しており、RAM360cはワークエリアとして用いられる。
無線モジュール360は通信手段に相当する。
【0080】
設定スイッチ371は、複数の遊技機間でデータをやり取りするにあたって、送信元や送信先の遊技機を特定できるように、遊技機毎に異なる遊技機番号(例えば、1の遊技島に配置されている遊技機が10台あれば、左から順にNo.1〜10(n台であれば、n)とする))を遊技店の係員によって操作可能なものである。例えば、上述のサブ間通信により、島に配置されている全遊技機に同一の画像やキャラクタを表示させたり、相互に関連性のある画像やキャラクタを同調あるいは同期させながら表示させることが設定スイッチ371の操作により可能となる。また、前述した遊技機番号を用いることで、特定の2台の遊技機間だけで前記演出を行うことも可能である。
遊技機番号は、例えば無線モジュールに設定されている固有IDを基に定義するようにしてもよいが、この場合は無線モジュールの固有IDの値がほぼランダムであることから遊技機の並びを特定するのが困難であり、島の左端の遊技機から順に群予告が流れていくといったような演出を行いたい場合は、各遊技機のロケーション情報を管理するためのマスターとなる遊技機や管理装置を設ける必要が出てしまい、手間がかかる。
そこで、本実施例では単純に島の遊技機を順番に特定可能な設定スイッチ371による手動設定によって、演出台を特定して演出を行えるようにしたので、誰でも簡単に操作できる上、前記演出も楽に制御できるようになっている。
また、設定スイッチ371の用途として、ロケーション情報設定用ではなく、無線モジュール360の制御内容を複数段階にモード設定し、遊技店の営業形態等に合わせて切り替えて選択するためのものとしてもよい。
【0081】
なお本例の場合、上記演出制御装置300を構成する回路基板が、サブ制御基板に相当する。そして、以上説明したように、表示装置41を制御する演出制御装置300(サブ制御基板)がスピーカやランプ類や装飾用の可動部などを制御しており、遊技制御装置100を構成する後述の主基板は、サブ制御基板へ制御コマンドを送ることで前記可動部などを間接的に制御している。このため、主基板の配線パターンなどのハード構成は機種が異なっても基本的に同じであり、遊技機用マイコン101に機種毎の遊技プログラムをインストールすることによって、技術的には主基板を機種やブランドが異なっても共用できる。
【0082】
次に、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を介して表示装置41に出力する。なお、第1VRAM606は主にフレームバッファ用のRAMとして、具体的には例えばフレームバッファ、Zバッファ用(3次元の場合、Z軸方向の量)のRAMとして用いられる。一方、第2VRAM607は主に素材用のデータを格納する描画素材用のRAMとして用いられる。
【0083】
画像ROM322のデータは、CGバスI/F603を介して第2VRAM607に格納される。なお、圧縮されているデータは、圧縮データ伸長回路604で伸長されて、第2VRAM607に格納され、また、必要に応じて第1VRAM606にも格納される。
描画回路605は、主に第2VRAM607に格納されている描画用素材を加工して(例えば、各種エフェクト、拡大、縮小などの加工)、また、表示する位置や順序(例えば、画面の奥から手前への表示順序など)を制御し、1フレームの画像データを作成して第1VRAM606に格納する。
【0084】
表示回路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との間等のデータ転送機能を有する。
【0085】
E.遊技の概要
次に、本例のパチンコ機1で行われる遊技の概要や遊技の流れについて説明する。
まず、遊技開始当初の時点(或いは遊技開始前の時点)では、客待ち状態(デモ中)となっており、客待ち画面の表示を指令するコマンドが遊技制御装置100のバッファ(例えば、同様の機能の図5ではバッファ173に相当)から演出制御装置300に送信され、表示装置の表示部41aには客待ち画面(動画又は静止画)が表示される。
【0086】
そして、ガイドレール21を介して遊技領域22に打込まれた遊技球が、特図の始動入賞口25又は26に入賞すると(即ち、特図の始動入賞があると)、特図の変動表示を指令するコマンドが遊技制御装置100から演出制御装置300に送信され、表示部41aにおいて特図(数字、文字、記号、模様等よりなるもの)が変動(例えば、スクロール)する表示(いわゆる変動表示)が行われて、特図の変動表示ゲーム(以下、特図変動表示ゲームという)が行われる。
【0087】
そして、この変動表示ゲームの停止結果態様(変動表示により導出された特図の組合せ)が特別結果態様(例えば、「3、3、3」などのゾロ目)であれば、大当りと呼ばれる特典が遊技者に付与される。なお制御上は、例えば始動入賞があったことを条件として、大当り乱数等の値が抽出記憶されて、この抽出記憶された乱数値と予め設定された判定値とが判定時に比較判定され、この比較判定結果に基づいて、予め大当りとするか否かが決定され、この決定に応じて上記変動表示ゲームが開始される。
また、通常モードにおいて、変動表示ゲームの停止結果態様が特別結果態様のうちの特定の態様(例えば、「7、7、7」のゾロ目)であれば、上記大当りになるとともに、大当り遊技後(後述する特賞期間後)に、ゲーム状態が通常モードから確変モードへ移行する。この確変モードでは、特図が大当りになる確率(以下、特図の大当り確率という)を高める制御が行われる。また場合によっては、いわゆる時短(特図等の変動表示時間を短くして変動表示ゲームの頻度を高め当り易くするもの)も行われる。
【0088】
上記大当りになって大当り状態に移行すると、ファンファーレ期間(大当りになったことを演出する効果音の出力などが実行される期間)を経て、変動入賞装置27の第1大入賞口が、規定時間(例えば、30秒)を越えない範囲内において、例えば10個入賞までの期間だけ一時的に開放される開放動作(大当たりラウンド)が行われる。そしてこの開放動作は、規定のラウンド数だけ繰り返し行われる。また、この大当り状態では、大当り状態を演出したり、大当りラウンド数などを遊技者に報知するための大当り画面の表示を指令するコマンドが遊技制御装置100から演出制御装置300に送信され、表示部41aでは、このような大当り中の表示が実行される。
【0089】
なお、この大当り状態になっている期間(ファンファーレ期間と、大入賞口が開放されている大当りラウンドの期間と、大当りラウンドと次の大当りラウンドの間のインターバル期間と、エンディング期間)が、特賞期間に相当する。
また上記大当りのラウンド数としては、例えば、通常は15ラウンド大当りが主の大当りであるが、プレミアとして16R大当りを発生させる構成でもよいし、その他の構成でもよい。また、いわゆる突確(出玉の少ない大当りを経由して大当り確率が変化する突然確変)として2ラウンド大当り等があってもよい。
さらに、表示装置41による変動表示ゲームの停止結果態様が特殊な態様(例えば、「3、特殊図柄、3」などの特殊目)になると、特殊大当りと呼ばれる特典が発生し、第2変動入賞装置33の開閉部材33aが規定時間(例えば、30秒)を越えない範囲内において、例えば5個入賞までの期間だけ一時的に開放される開放動作(大当たりラウンド)が行われる。そしてこの開放動作は、規定のラウンド数だけ繰り返し行われる。
【0090】
一方、上記特図の変動表示ゲーム中又は大当り中に、始動入賞口25又は26にさらに遊技球が入賞したときには、表示部41a等で特図の始動記憶の保留表示が行われて例えば4個まで記憶され、変動表示ゲーム又は大当り状態が終了した後に、その始動記憶に基づいて上記特図の変動表示ゲームが繰り返されたり、客待ち状態に戻ったりする。
即ち、変動表示ゲームが大当りで終了すれば大当り状態に移行し、変動表示ゲームがはずれで終了し始動記憶があれば再度変動表示ゲームが実行され、変動表示ゲームがはずれで終了し始動記憶がなければ客待ち状態に戻り、大当りが終了して始動記憶があれば再度変動表示ゲームが実行され、大当りが終了して始動記憶がなければ客待ち状態に戻る流れとなっている。
【0091】
なお本形態例では、例えば特図の始動記憶(特図始動記憶)の表示を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種類の変動表示ゲームが入賞順に行われる態様などが有り得る。
【0092】
一方、遊技中に、遊技球が普図始動ゲート32を通過したときは、表示部41a等で普図の変動表示による普図の変動表示ゲーム(以下、普図変動表示ゲームという)が行われる。そして、この普図変動表示ゲーム結果(停止した普図)が所定の態様(特定表示態様)であれば、普図当りと呼ばれる特典が付与される。
この普図当りになると、第2始動入賞口26の一対の開閉部材26aが逆ハの字に開いた開状態に、所定の開放時間だけ一時的に保持される遊技が行われる。これにより、遊技球が始動入賞し易くなり、その分、特図の変動表示ゲームの実施回数が増えて大当りになる可能性が増す。
また、上記普図の変動表示ゲーム中に、普図始動ゲート32にさらに遊技球が入賞したときには、一括表示装置35によって普図始動記憶の保留表示が実行されて、例えば4個まで記憶され、普図の変動表示ゲームの終了後に、その記憶に基づいて上記普図の変動表示ゲームが繰り返される。
【0093】
次に、固有IDの外部出力について概略説明すると、パチンコ機1の電源投入時やシステムリセット時には、遊技用マイコン101に格納(例えば、HWパラメータROMに格納)されている固有ID(以下、適宜、主固有IDという)が読み出されて、遊技プログラムの動作によりシリアル通信形式(又はパラレル通信形式でもよい)にされて、外部情報端子板55で中継されて外部の管理装置140(又はカードユニット551を含めてもよい)に伝送される。これにより、遊技用マイコン101に格納されている固有IDを遊技店側に送ることが可能になる。
また、固有IDは外部からの要求に応答して外部(ここでは図4の検査装置接続端子102)へと転送される。そして、例えば検査装置接続端子102に検査装置を接続することにより、遊技用マイコン101に格納されている固有IDが検査機関にて読み出されることになる。
一方、払出制御装置200の払出用マイコン201を識別可能な払出固有ID(払出個体識別情報)は、払出制御装置200にて払出プログラムの動作によりシリアル通信形式(又はパラレル通信形式でもよい)にされて、外部情報端子板55で中継されて外部の管理装置140(又はカードユニット551を含めてもよい)に伝送される。これにより、払出用マイコン201に格納されている払出固有IDを遊技店側に送ることが可能になる。
なお、本実施例では、主基板と払出基板の各固有IDが別々に外部情報端子板55で中継されて外部の管理装置140へ伝送される構成にしているが、これに限るものではない。例えば、遊技制御装置100(主基板)から主固有IDを払出制御装置200(払出基板)へ送り、払出制御装置200では主固有IDと払出固有IDとをまとめて外部情報端子板55で中継して外部の管理装置140へ伝送する構成であってもよい。また、例えば払出制御装置200(払出基板)から払出固有IDを遊技制御装置100(主基板)へ送り、遊技制御装置100では払出固有IDと主固有IDをまとめて外部情報端子板55で中継して外部の管理装置140へ伝送する構成であってもよい。
このようにすると、遊技機の回路構成に対応させて、主基板と払出基板の各固有IDの外部への取り出しの自由度が増す。
【0094】
次に、遊技制御装置100から演出制御装置300へ送信されるコマンドについて概略説明すると、変動表示ゲームを実行する際には、遊技制御装置100から停止図柄の組み合わせ(結果態様)のデータと、リーチ系統(或いは変動時間)のデータとを含むコマンド(例えば後述する変動パターンコマンド)が演出制御装置300に送信され、演出制御装置300では、この停止態様と変動時間を満足する変動態様を選択して、表示装置41に所定の特図を変動表示させて最終的に特定の図柄の組み合わせ(結果態様)を導出表示させる特図変動表示ゲームの制御が行われる。
この場合、遊技制御装置100から演出制御装置300へ送信されるコマンドのうち、単独では演出を開始せず、組で効果を発揮するものがあり、例えば特図変動開始時の「変動パターンコマンド+図柄指定コマンド」がある。また、単独で効果を発揮するコマンド(例えば、客待ちコマンド)もあり、遊技制御装置100から演出のために多くのコマンドが順次、演出制御装置300に送信される。
【0095】
サブ間通信の同一グループ内の1つの遊技機(予告実行遊技機)から他の遊技機にサブ間予告コマンドとしてサブ間連動予告系コマンドを一斉送信すると、サブ間連動予告系コマンドが、例えば予告態様Aの実行を指示する内容である場合、他の遊技機では、各台に設定されている予告態様Aの実行確率に基づいてサブ間予告の実行の有無を過去の予告態様Aに対する実行確率に基づき乱数を用いた抽選を行って決定する。そして、実行を決定した場合、他の遊技機の演出最中に、予告態様A(例えば、虎のキャラクター)を挿入し、重ねて表示することにより、遊技機(予告実行遊技機)の演出と同期を取ることが行われる。
また、サブ間通信の同一グループ内の遊技機(予告実行遊技機)から指示されたサブ間連動予告系コマンドに基づく演出を実行した遊技機にあっては、予告態様Aの次回の実行回数を+1だけ更新し、次回のサブ間連動予告系コマンドに備える。
【0096】
この場合、サブ間連動予告系コマンドを受けた他の遊技機では、各台に設定されている過去の予告態様Aに対する実行確率に基づき乱数を用いた抽選によってサブ間予告の実行の有無を決定しているので、他台からの指示によってサブ間予告の演出をいくらでも出現させるということが抑制され、適宜な頻度で、サブ間予告の演出を出現させるようにすることができる。
すなわち、過去に実行したサブ間予告の演出の実行回数に応じて、サブ間予告の演出の実行回数を適度に制限することができる。
したがって、予告演出等の信頼度を損ねないようにすることができ、遊技の興趣を下げる虞もなくすことができる。
【0097】
また、本実施例では、表示装置41に表示する画面の描画制御において、シナリオデータ(シナリオレイヤ−)という概念が使用される。シナリオとは、例えば背景シナリオ、左図柄シナリオ、右図柄シナリオ、・・・等のように、図柄の変動演出を複数のレイヤ(シナリオレイヤー)に分けてテーブルとして予め設定し(詳細は後述)、それらを個別にシナリオとして制御し、全てのシナリオを合成することで、1画面の絵を生成する手法である。
具体的には、表示装置41における図柄の変動演出では、例えば変動出だしの動き、スローダウンして仮停止するまでの動き(送りコマ数やスベリなど)、予告演出の種類など、変動毎に行われる演出振り分けによって多様な組合せとなるため、全ての組合せに対して1つ1つの画面毎にシナリオデータを作成すると膨大なデータ量となってしまう。
そこで本実施例では、演出制御装置300において変動演出における描画制御では、背景、左図柄、右図柄、・・・と個別に各表示要素毎にカテゴリ分けを行い、各々を独立して複数のモーション情報を同時にあるいは連続的に切り替えて演出表示させるための動作シナリオのテーブルとして設定して、例えば(PROM(制御ROM)321に予め格納しておく。次いで、遊技制御装置100からの演出コマンドに応じて演出制御装置300ではシナリオテーブルを選択し、組み合わせて合成することで、1画面の描画内容(1フレーム毎)を作り出すことが行われる。そうすることで、最小限の動作パターンを定義する(動作のパーツ化)だけで済み、データ容量の節約と開発の効率化ができる。
【0098】
さらに本実施例では、シナリオテ−ブル中のボタン演出開始設定のデータには、遊技者が操作する押ボタン式の演出ボタン9(以下、適宜、PBと略称することがある)の有効時間が設定されている。
すなわち、演出ボタン9の演出を含むシナリオテ−ブル内にはボタン有効期間中を表す有効期間タイマ(1フレームが経過する毎に更新(つまり、(−1)更新)されていく更新処理がタイマに相当)を設け、演出ボタン9が押されたタイミングにより、有効期間タイマの更新状況に基づいて以降に行われるシナリオの演出時間が可変となるようにしている。
そのため、表示装置41における演出画面のフレームが進む度に有効期間タイマの値がマイナスされ、有効期間タイマが「0」になると、演出ボタン9の操作が無効となり、演出ボタン9が押された時の演出は行われない。一方、有効期間タイマが「0」になる前に演出ボタン9が押された場合には、押された時の演出が開始される。
このように、演出ボタン9を押したタイミングにより、登場するキャラクタの表示時間が可変となるため、遊技の興趣が高められる。
すなわち、早く演出ボタン9を押すと残り時間(つまり残りフレームに相当する時間:αフレーム)に応じて長い予告演出(残り時間+固定時間)が見られ、予告演出の終了ギリギリで演出ボタン9を押すと、最低限である固定時間(例えば、55フレーム)分の予告演出が行われることになる。
したがって、演出ボタン9を早いタイミングで押す程、長い予告演出が見られることになり、早く演出ボタン9を押すメリットが生じ、遊技の興趣が高まる。
【0099】
また、本実施例では、シナリオテ−ブル内には現在の演出状態を継続するか否かを判定する判定コードを設け、演出制御装置300におけるRAM311a内のモーション情報とシナリオテ−ブル上のモーション情報とが異なる場合には、演出内容としてシナリオテ−ブル上のモーション情報を設定し、同じ場合には演出内容としてシナリオテ−ブル上のモーション情報を設定しないように制御することが行われる。
例えば、演出画面の背景を継続表示するか新規背景で演出を行うか否かを判定コードに基づいて判定し、新規背景にすると判定した場合には、現在のRAM311aのデータをシナリオテ−ブル上の新規背景に対応するデータで上書きする。これにより、背景が切換えられて、新規背景で演出が行われる。一方、背景継続と判定した場合には、シナリオテ−ブルから取得した指示データは破棄して現在の背景のままで演出が進行する。
このようにすることで、前回の演出における背景の状態が次回の演出にも継続できることになり、例えば異なる特図変動の演出間においても統一感を有する表示要素を持たせることが可能になって、遊技の興趣が向上する。
例えば、予告キャラクタを複数の異なる特図変動の演出間にまたがって表示装置41の画面上に残す等の多彩な演出を行うことができる。
また、演出内容を継続する場合としない場合とでシナリオテ−ブルを使い分ける必要がなく、開発効率が向上する。すなわち、1つのシナリオテ−ブルで遊技の状況に合わせた演出が行える。
【0100】
次に、表示装置41での演出を行う場合、前述したようにシナリオテ−ブルを用いているが、このシナリオテ−ブルでは特定の演出の流れを制御するためのデータ(どのモーションテーブルをどんなタイミングで実行するかなどを指定するデータ)が設定されている。
そして、上記のモーションテーブルには、ブロック化された各演出(主に演出表示)のモーションのデータ(すなわち、表示する画像データやその表示位置等を指定するデータ)があり、モーションはブロック化された演出動作を意味している。
ここで、本実施例ではモーションデータとして、動き(キャラクタの描画位置)が同じであれば、表示されるキャラクタが違っていても基本的に1通りしか設けないようにしている。したがって、モーションデータを生成するためのアニメーションは、基本となるキャラクタを決めてからの作成となる。
【0101】
すなわち、本実施例ではモーションテーブルに定義するキャラクタに条件を付け、基本(代表)となるキャラクタを決めて1本のアニメーションを作成するような制御が行われる。
例えば、変動のアニメーションを作る場合、図柄のキャラクタを登場させる必要があるが、表示装置41の画面上に映し出される図柄には無数の組合せ(状態)があり、それらを全て反映したアニメーションを作成するのには無理がある。そのため、基本(代表)となるキャラクタを決めて1本のアニメーションを作成し(キャラクタが同じ動きをするものでキャラクタが違うだけのグループで1本)、制御プログラムによってキャラクタの差し替え処理を行うことで、如何なる表示態様にも対応出来るようにしてデータ容量を節約する制御が行われる。
具体的には、基本となるキャラクタは、差し替え対象となるグループの中で大当り信頼度が最も低いものに設定される。例えば、プッシュボタン予告(PB予告)の演出で表示される演出ボタン9の操作に関するキャラクタにおいて、白、青、黄、緑、赤、レインボーの種類がある場合、プッシュボタン予告のモーションデータ中に定義するボタンキャラクタは一番大当り信頼度の低い「白」を使用することが行われる。ただし、はずれ時と大当り時で共通に出現することが前提となっている。
【0102】
このように、大当り信頼度の最も低いキャラクタを基本キャラクタとしてモーションテーブルに登録しておき、演出の進行でキャラクタの変更(ただし、例えばプッシュボタンのキャラクタというように、同種のキャラクタの範囲内での変更)を行いたい場合には、制御プログラムで基本キャラクタを別のものに差し替えるビヘイビア(オブジェクト(表示要素)の画像データ(キャラクタデータ)を差し替える機能)処理を行うことで、如何なる表示態様にも対応できるようになり、はずれ時も大当り時も共通に使えるデータとなって、データ容量を低減でき、開発効率も向上する。
【0103】
次に、本実施例では大当り演出終了時よりも前に背景画面を選択し、大当りのエンディング期間が終わりきる前に選択した背景画面を用いた図柄停止画面を表示するような制御が行われる。
具体的には、大当り演出後は、表示装置41の特図(飾り特図(飾り図柄)のこと、以下同様)が変動するための通常画面に戻り、そこでは図柄変動に調和する背景画面(例えば、背景ムービー)が表示される。この場合、その時の遊技状態(例えば、確率変動、時短、通常確率等)によって背景画面の種類や特図の形状が異なる可能性が高い。
演出制御装置300は遊技制御装置100からの確率情報コマンドに基づいて遊技状態を判断することになるが、遊技制御装置100側で確率等の状態を変化させて良いのは大当り動作が終了した時であるから、確率情報コマンドが送信できるのは大当りが終わった後の特図変動を開始する直前となってしまう。
ところで、確率情報コマンド受信によって背景画面の種類を変化させたのでは、大当りのエンディング画面用の背景画面から急に特図変動時用の背景画面に切り替わることになり、せわしない演出となってしまう可能性が高い。
【0104】
そこで本実施例では、大当りのエンディング動作の終了前の規定時間(例えば、1〜2秒程度)の間に、いわゆる停止図柄表示の画面を表示する時間(所定の図柄表示期間)を設け、その時の背景画面は大当り後の通常遊技での特図変動時の背景画面としておくことで、大当りのエンディング期間から通常遊技状態の特図変動ゲームへスムーズな移行を行えるようにしている。
なお、演出制御装置300では確率情報コマンドを受信する前から、受信した後に表示すべき状態にするため、大当り終了後の遊技状態の予測が必要になる。
そのため、例えば大当り中に受信した図柄コマンド、ファンファーレコマンド、エンディングコマンドの他、演出制御装置300の内部情報(例えば、次回に潜伏確率変動にするような情報)等の内容から判断することで、大当り後に移行するであろう遊技状態を予測するようにしている。
そして、上記のような各種情報を基にして大当り終了後における通常遊技での背景種類を予測して複数の背景種類のうちから1種類の背景画面を選択し、選択した背景画面を確率情報コマンドの受信前から表示装置41に表示させる制御が行われる。
このように、既に受信している遊技制御装置100からの情報(エンディングコマンド等)や演出制御装置300の内部情報から大当り後における通常遊技での背景種類を予測し、大当りのエンディング動作が終わりきる前に、当該背景種類を用いた図柄停止画面を表示する間を作ることで、演出画面の急な切り替わりを防ぎ、演出効果を向上させることができる。
また、演出制御装置300の内部情報による予測を含めて予め対応しておくので、確率情報コマンドを受信しなかった場合の対処をせずとも、正常な表示を行える可能性が高くなり、効率良く開発・制御を行うことができる。
【0105】
次に、本実施例ではモーションテ−ブルに同一カテゴリのオブジェクト(例えば、キャラクタ)を複数定義して演出の制御が行われる。
すなわち、モーションテ−ブルには各表示要素(例えば、背景、左図柄、右図柄、・・・)毎にモーションデータ(表示する画像データやその表示位置等を指定するデータ)が登録されるが、それらのデータは同一カテゴリとして定義するオブジェクト群にまとめて登録される。
例えば、左図柄カテゴリとして定義するオブジェクト群については、現図柄だけでなく、前図柄、次図柄等についても、図柄キャラクタとして1つのモーションテ−ブル内に定義する。そして、これらの各オブジェクト(現図柄、前図柄、次図柄等のキャラクタ)については、キャラクタNo、座標、サイズ、ビヘイビア等がモーションテ−ブル上に定義される。
したがって、例えば左図柄カテゴリであれば、表示装置41の正面に見えている図柄(現図柄)だけでなく、当該図柄の上下に配置する次図柄、前図柄等も同一のモーションテ−ブルに定義されることになる。
【0106】
このようなモーションテ−ブルを使用して演出の制御を行う場合、同一カテゴリのキャラクタについては1つのモーションテ−ブルにオブジェクト群としてまとめて登録されているので、似たような動作となる同一カテゴリのキャラクをまとめて制御することができる。したがって、モーションを管理するシナリオテ−ブルを作成するときも扱いやすく、データ量の削減もでき、開発効率も向上する。
例えば、図柄の制御を行う場合、現図柄、次図柄、前図柄などを表示装置41の画面に表示する際、現図柄を基準として次図柄、前図柄の差し替え演算(現図柄を基準にすれば、他の図柄は相対的に差し替えで計算可能)を行うことになるが、同一カテゴリのキャラクタ(ここでは図柄キャラクタ)については1つのモーションテ−ブル内に定義されていれば、演算のパラメータの使い回しなどもできて、効率良く制御を行うことができる。
【0107】
次に、本実施例では1画像動画キャラクタを用いて、静止画表示に見えるキャラクタを描画する制御が行われる。
すなわち、本実施例では画像ROM322に対して、通常の動画表示のキャラクタは動画キャラクタを用いて記憶し、1つの静止画を繰り返して表示することで静止画表示に見えるキャラクタ(見た目が静止画に見えるキャラクタ)は1画像のみで構成された静止画を繰り返して表示する形式の1画像動画キャラクタを用いて記憶しており、これらのキャラクタを表示装置41に表示する際には共通のモーションテ−ブルを使用して描画の制御が行われる。
すなわち、遊技者が見る表示装置41の画面上で、見た目が静止画に見えるキャラクタであっても、演出制御装置300の内部制御においては静止画を繰り返して表示する形式の1画像のみで構成された1画像動画キャラクタを画像ROM322に記憶し、当該1画像動画キャラクタは、1画像のみで構成された同じ静止画を繰り返して表示する形式のデータによって作成している。
また、画像のモーションを定義するモーションテ−ブルには、通常動画のキャラクタと静止画表示に見える1画像動画キャラクタとを同じテ−ブル内に定義することで、モーションテ−ブルを共通にしている。
そして、動画表示に見える通常動画のキャラクタと静止画表示に見える1画像動画キャラクタを表示装置41に表示する際に共通のモーションテ−ブルを使用して描画の制御が行われ、特に、静止画表示に見える1画像動画キャラクタについては1画像のみで構成された同じ静止画を繰り返して表示する形式のデータを用いて描画することが行われる。
この場合、見た目が静止画に見える1画像動画キャラクタは同じ画像(つまり、同じ静止画)で構成されたムービー(ここでは、静止画ムービーと呼ぶ)で作成されているので、動画として再生されても、見た目の画像が変化せず、静止画キャラクタと同様の表示となる。
【0108】
したがって、見た目が静止画に見える1画像動画キャラクタについては演出制御装置300の内部の画像ROM322では動画のデータ形式で記憶し、動画で扱うようにしてモーションテーブルを共通で使えるようにしたので、モーションテーブルの数を増やさなくてすみ(データ容量削減)、制御ROM321の圧迫を防ぐこと(即ち、容量低減等)が可能であるとともに、データ項目数削減による制御のし易さを図ることができ、さらに、管理のし易さが見込めるようになり、開発効率も向上する。
また、静止画専用のモーションデータの場合には、静止画ムービーを動画再生させずに使用(例えば、1画像動画キャラクタの1枚目の画像だけを表示する使用)すれば、単なる静止画となり、静止画単体のキャラクタデータを用意せずにすむので、データ量の節約にも繋がる。
【0109】
次に、本実施例ではPB予告の演出に関するシナリオテ−ブル内に音出力に関する処理のコードを持たせて演出の制御が行われる。
すなわち、遊技の進行中に、表示装置41の画面にPB(演出ボタン9)を押すことを促す表示がされたとき、遊技者が演出ボタン9を押すと、ボタン押下音が出力されるとともに例えば武将が登場し、セリフを語るような予告演出が行われる。この演出は、キャラクタ等の映像の管理を行うシナリオテ−ブルによって制御されている。
この場合、PB予告の演出に関するシナリオテ−ブルの中には、演出ボタン9が押されないまま有効時間が終了してしまった場合のシナリオデータと、演出ボタン9を押したことにより演出が進行する場合のシナリオデータがある。
演出ボタン9を押したことにより演出が進行するシナリオデータ部には、演出ボタン9の押下時に音を鳴らすためのボタン押下音の出力設定を行う処理コードが設けられている。
【0110】
そのため、ボタン押下音の出力設定を行う処理コードによって実行される演出処理では、ボタン押下音を鳴らす/鳴らさないの確認が不要となり(ただし、ボタン押下音を鳴らしていい状況下であるかの判断は必要:これは、シナリオテ−ブル内にPB待ちコードのデータが設定されているので、演出ボタン9が押されたことの判断は可能)、映像と音の制御内容が同一のシナリオテーブル内にあることになるので、映像と音の演出の同期を管理しやすく、開発効率も向上する。
【0111】
また本実施例は、他にも、演出制御装置の制御において例えば以下のような特徴を有するが、これらの詳細は後述する。
・モーションデータ(モーションテーブルのデータ)を演出の区間毎に設けてブロック化し、シナリオテーブルにおいて、実施する演出内容に従ってパーツとなるモーションテーブルを選択的に組み合わせて使用するという特徴。
・第4図柄(変動状態報知図柄)の変動に関しては、前回の停止図柄によらず決められた変動サイクルの最初から行うという特徴。
・第4図柄のモーションテーブルは、他の特図(演出用の飾り図柄)の場合とは異なり、変動中は切り替えない(即ち、変動開始時に設定したものから変更しない)という特徴。
・1つのモーションテーブルで複数種類の第4図柄(特図1の第4図柄と特図2の第4図柄)の表示制御を行うという特徴。
・フェード演出を行う際、第4図柄より奥側にフェード用キャラクタを配置するという特徴。
・同一サイズで変動を行う装飾図柄の制御の場合、ブロック化された各種のモーションテーブルの最初のフレームが、一定の座標位置(この場合、図柄停止時における表示位置)からスタートするという特徴。
・同一サイズで変動を行う装飾図柄の制御の場合、ブロック化された各種のモーションテーブルの最初のフレームが、一定の座標位置からスタートするように構成しており、さらに最終フレームの座標データは前記一定の座標位置とは異なる位置に設定しているという特徴。
・同一キャラクタの表示を継続する場合であっても、演出の変化点においてキャラクタ情報を一旦削除して再登録するという特徴。
・演出のシナリオ進行における単純ウェイト(定数ウェイト、可変ウェイト)とボタン待ちウェイトの場合で、書き込むRAM領域を別にしているという特徴。
【0112】
F.制御系の動作
次に、遊技制御装置100の制御内容について図8図96により説明する。
最初に、以下のフローチャートの説明に使用する主要な構成の概念を明確にしておくと、下記の通りである。
前述したように、一括表示装置35で本特図や本普図を表示している。以下の制御処理の説明における特図は、この特図(本特図)を意味するので、以上を前提に細かく説明する。なお、遊技制御装置100からのコマンドに基づいて演出制御装置300が制御する特図は表示装置41の方に表示される演出用の特図である。
(イ)特図の表示装置
以下のフローチャートで特図という場合には、一括表示装置35で表示される「本特図」の方を指している。また、表示装置41で表示される遊技者向けの演出用のダミー表示の方を指す場合は「飾り特図」という。
このように特図を表示する装置は一括表示装置35であるが、一括表示装置35における本特図を表示する領域の名称としては、例えば特別図柄表示装置、特図表示装置というものがあり、普図表示装置との区別を図るため、特別図柄表示装置ということがある。
(ロ)普図の表示装置
以下のフローチャートで普図という場合には、一括表示装置35で表示される「本普図」の方を指している。また、表示装置41で普図を表示する構成を採用した場合には、表示装置41で表示される遊技者向けの演出用のダミー表示の方を指す場合は、例えば「飾り普図」という。
このように普図を表示する装置は一括表示装置35であるが、一括表示装置35における本普図を表示する領域の名称としては、例えば普通図柄表示装置、普図表示装置というものがあり、特図表示装置との区別を図るため、普通図柄表示装置ということがある。
ただし、本実施例では、このような普図の表示を表示装置41では表示していない構成になっている。なお、普図(ここでは飾り普図)表示を行う表示器を設けてもよい。遊技機の説明をする上で、必要な場合には「飾り普図」を表示する装置を含めて説明することもある。
(ハ)普電
普電に相当する装置は、普通電動役物(普電)としての第2始動入賞口26である。
ただし、普電を普通変動入賞装置ということがあり、例えばフローチャートの説明では、特に普通電動役物(普通変動入賞装置26)ということがある。
また、例えば高確率時や時短時などに、普通電動役物(普電)としての第2始動入賞口26の開閉部材26aが開放する動作によって始動入賞をサポートすることが行われるが、これを単に普電サポートということがある。
(ニ)特図記憶
以下のフローチャートで特図保留(単に「保留」という場合もある)、特図記憶、あるいは特図の始動記憶という場合には、一括表示装置35で表示される「本特図記憶」の方を指している。また、表示装置41で表示される遊技者向けの演出用のダミー表示の方を指す場合は「飾り特図保留」、あるいは「飾り特図記憶」という。
特図の始動入賞口として機能する入賞口は、始動入賞口25,26である。
(ホ)普図記憶
以下のフローチャートで普図保留、普図記憶、あるいは普図の始動記憶という場合には、一括表示装置35で表示される「本普図記憶」の方を指している。また、表示装置41で表示される遊技者向けの演出用のダミー表示の方を指す場合は「飾り普図保留」、あるいは「飾り普図記憶」という。
ただし、本実施例では、このような普図の始動記憶表示を表示装置41では表示していない構成になっている。なお、普図の始動記憶(ここでは飾り普図記憶)表示を行う表示器を設けてもよい。遊技機の説明をする上で、必要な場合には「飾り普図記憶」を表示する装置を含めて説明することもある。
(ヘ)変動入賞装置
変動入賞装置27は、開閉部材27bによって開閉される大入賞口27aを有する装置(いわゆるアタッカー)である。この変動入賞装置27は、普通変動入賞装置と区別するために特別変動入賞装置ということもある。
なお、本実施例では変動入賞装置27の他に、第2変動入賞装置33が設けられており、いわゆる2つのアタッカーが配置された構成になっている。
【0113】
〔遊技制御装置のメイン処理〕
まず、図8、9により、遊技制御装置100(遊技用マイコン101)のメイン処理を説明する。
このメイン処理は、遊技用マイコン101に強制的にリセットがかけられたことに基づいて開始する。すなわち、電源装置500の図示省略した電源スイッチがオン操作されると、所定のタイミングに(電源投入時の所定のリセット期間に)電源装置500の制御信号生成部503からリセット信号が遊技制御装置100に入力されて遊技用マイコン101のリセット端子がオンし、その後このリセット信号が解除されると、遊技用マイコン101が起動する。なお、停電からの電源復旧時にも、同様にリセット信号がオンした後に解除されて遊技用マイコン101が起動する。また、作業者が遊技制御装置100のユーザワークRAM等の初期化をしようとする場合には、電源装置500のRAMクリアスイッチ504(初期化スイッチ)をオン操作しながら前記電源スイッチをオン操作する必要がある。
【0114】
そして遊技用マイコン101が起動すると、まず割込みを禁止する処理(ステップS1)を行い、次いで、割込みが発生したときに実行するジャンプ先のベクタアドレスを設定する割込みベクタ設定処理(ステップS2)、割込みが発生したときにレジスタ等の値を退避する領域の先頭アドレスであるスタックポインタを設定するスタックポインタ設定処理(ステップS3)を順次行う。
次いで、入力ポート1(第1入力ポート160)の状態を読み込み(ステップS4)、割込み処理のモードを設定する割込みモード設定処理(ステップS5)を行う。
次いで、ステップS6で電源ディレイタイマを設定する処理を行う。この処理では、所定の初期値を設定することにより、主制御手段をなす遊技制御装置100からの指示に従い種々の制御を行う従制御手段(例えば、払出制御装置200や演出制御装置300)のプログラムが正常に起動するのを待つための待機時間(例えば、3秒)が設定される。これは、遊技制御装置100が電源投入時において、主制御手段(遊技制御装置100)の起動を遅らせて従制御装置(払出制御装置200、演出制御装置300等)の起動を待つための所定の待機時間を設定する待機手段をなす。これにより、電源投入の際に仮に遊技制御装置100が先に立ち上がって従制御装置(例えば、払出制御装置200や演出制御装置300)が立ち上がる前にコマンドを従制御装置へ送ってしまい、従制御装置がコマンドを取りこぼすのを回避することができる。
【0115】
ここで、このディレイタイマには払出基板(払出制御装置200)の起動待ちを含む。すなわち、払出基板(払出制御装置200)のプログラムが正常に起動するのを待つために所定のディレイ時間(例えば4msec)だけ処理の進行を停止することも含まれる。
なお、第1入力ポート160にはRAMクリアスイッチ504からの初期化スイッチ信号が入力されるようになっており、待機時間の開始前に第1入力ポート160の状態を読み込むことで、初期化スイッチ(RAMクリアスイッチ504。以下、同様)の操作を確実に検出できる。すなわち、待機時間の経過後に初期化スイッチの状態を読み込むするようにすると、待機時間の経過を待ってから初期化スイッチを操作したり、電源投入から待機時間の経過まで初期化スイッチを操作し続けたりする必要がある。しかし、待機時間の開始前に状態を読み込むことで、このような煩わしい操作を行わなくても電源投入後すぐに操作を行うことで検出されるようになり、電源投入時に行った初期化の操作が受け付けられないような事態を防止できる。
【0116】
電源ディレイタイマを設定する処理(ステップS6)を行った後、待機時間の計時と、待機時間中における停電の発生を監視する処理(ステップS7乃至S11)を行う。まず、電源装置500から入力されている停電監視信号をポート及びデータバスを介して読み込んでチェックする回数(例えば、2回)を設定し(ステップS7)、停電監視信号がオンであるかの判定を行う(ステップS8)。なお、ステップS6により電源ディレイタイマが設定されて同タイマがカウントを進行中である場合にも、ステップS8の停電監視が行われる。
停電監視信号がオンである場合(ステップS8;YES)は、ステップS7で設定したチェック回数分停電監視信号のオン状態が継続しているかを判定する(ステップS9)。そして、チェック回数分停電監視信号のオン状態が継続していない場合(ステップS9;NO)には、停電監視信号がオンであるかの判定(ステップS8)に戻る。また、チェック回数分停電監視信号のオン状態が継続している場合(ステップS9;YES)、すなわち、停電が発生していると判定した場合は、遊技機(パチンコ機1)の電源が遮断されるのを待つ。このように、所定期間に亘り停電監視信号を受信し続けた場合に停電が発生したと判定することで、ノイズなどにより停電を誤検知することを防止でき、電源投入時における不具合に適切に対処することができる。
【0117】
すなわち、遊技制御装置100が所定の待機時間において停電の発生を監視する停電監視手段をなしているので、これにより、主制御手段をなす遊技制御装置100の起動を遅らせている期間において発生した停電に対応することが可能となり、電源投入時における不具合に適切に対処することができる。なお、待機時間の終了まではRAM(例えば、RAM101C)へのアクセスが許可されておらず、前回の電源遮断時の記憶内容が保持されたままとなっているため、ここでの停電発生時にはバックアップの処理等は行う必要がない。このため、待機時間中に停電が発生してもRAMのバックアップを取る必要がなく、制御の負担を軽減することができる。
【0118】
一方、停電監視信号がオンでない場合(ステップS8;NO)、すなわち、停電が発生していない場合には、電源投入ディレイタイマを−1更新し(ステップS10)、続いてタイマの値が0であるかを判定する(ステップS11)。タイマの値が0でない場合(ステップS11;NO)、すなわち、待機時間が終了していない場合は、停電監視信号のチェック回数を設定する処理(ステップS7)に戻る。また、タイマの値が0である場合(ステップS11;YES)、すなわち、待機時間が終了した場合は、RAMやEEPROM等の読出し書込み可能なRWM(リードライトメモリ)のアクセス許可をし(ステップS12)、全出力ポートにオフデータを出力(2値信号の「0」に相当する信号:つまり出力が無い状態に設定)する(ステップS13)。
ここで、本実施例においてRWMとは、RAM101Cを指すが、RAMに限らず、RWMとして例えばEEPROM等の読出し書込み可能な記憶素子を含めて使用してもよい。
なお、リセット信号によって各出力ポートはオフ設定(リセット)されているので、ソフト的に各出力ポートにオフ信号を出力する必要は必ずしもないが、ここでは念のためにステップS13が設けられている。
【0119】
続いて、シリアルポート(遊技用マイコン101に予め搭載されているポートで、この実施例では、演出制御装置300や管理装置140との通信に使用)を設定する(ステップS14)。
ここで、シリアルポートを使用する状態に設定するのは、固有IDを外部(例えば、管理装置140)へ出力するときに、このシリアルポートを使用するから、ここでは使用する状態にしておくものである。また、演出制御装置300との間でシリアル通信を行う必要があるので、シリアルポートを使用する状態に設定することになる。
次いで、先に読み込んだ第1入力ポート160の状態から電源装置500内の初期化スイッチ(RAMクリアスイッチ504)がオンにされたかを判定する(ステップS15)。これは、初期化スイッチ信号の状態によって前記初期化スイッチがオンしているか否か判断するもので、初期化スイッチがオンしていれば、ステップS25に進み、オンしていなければステップS16に進む。
なお、ステップS25に進むのは、前記初期化スイッチがオン操作されて遊技用マイコン101が起動した場合、後述するステップS16、ステップS17のそれぞれでRWMの停電検査領域1、停電検査領域2が全て正常ではないと判定された場合、或いは後述するステップS19でチェックサムが正常でないと判定された場合である。このため、ステップS25に進むと、遊技用マイコン101のRWM内のデータ(アクセス禁止領域を除く)を初期化するなどの処理を行う。
【0120】
初期化スイッチがオンしていなければ、ステップS16に進んで、RWMの停電検査領域1の値が正常な停電検査領域チェックデータ1であるか否かチェックし、ステップS116でチェック結果が正常でないと判断すると、ステップS25にジャンプする。一方、ステップS16でのチェック結果が正常であれば、続くステップS17でRWMの停電検査領域2の値が正常な停電検査領域チェックデータ2であるか否かチェックする。そして、ステップS17でチェック結果が正常でなければステップS25にジャンプし、チェック結果が正常であれば、ステップS18に進む。
このように、RWMの停電検査領域1、2の値が全て正常であれば、停電復帰時であると判断してステップS18に進むことになる。一方、RWMの停電検査領域1、2の値が異常であれば(正常に記憶されてなければ)、通常の電源投入時であるとしてステップS25にジャンプすることになる。
なお、停電検査領域チェックデータ1、2は、後述するステップS39、40で設定されるものである。これらのステップS39、40では、このように複数のチェックデータ1,2によって停電復帰時であるか否か判定するので、停電復帰時であるか否かの判断が信頼性高く為される。
【0121】
次にステップS18では、RWMのデータのチェックサムを算出し、ステップS19では算出したチェックサムと電源遮断時のチェックサムとを比較し、その値が正常(一致)か否かを判定する。このチェックサムが正常でない場合(即ちRWMのデータが壊れているとき)には、ステップS25に進み、前記チェックサムが正常である場合には、図9のステップS20へ移行し、停電から正常に復旧した場合の処理を行う。
ステップS20では、初期化すべき領域に停電復旧時の初期値をセーブする。ここでの初期化すべき領域とは、以下の領域が含まれる。
・外部情報領域の扉・枠開放信号、セキュリティ信号
・停電復旧検査領域1,2
・試験信号領域の遊技機エラー状態信号
・電源断時チェックサム領域
・エラースキャンカウンタ(遊技枠状態監視スキャンカウンタ)
・前枠開放監視領域
・遊技枠開放監視領域
・シュート球切れ監視領域
・オーバーフロー監視領域
・払い出し異常監視領域
・スイッチ1、2異常監視領域
・下大入賞口不正入賞監視領域
・上大入賞口不正入賞監視領域
・普電不正入賞監視領域
・磁気不正監視領域
・電波不正監視領域
・大入賞口不正監視情報1、2
・普電不正監視情報
【0122】
ステップS20を経ると、その後、RWM内の遊技状態を記憶する領域を調べて遊技状態が高確率状態であるか否かを判定する(ステップS21)。ここで、高確率でない場合(ステップS21;NO)は、ステップS22,S23をスキップしてステップS24へ移行する。また、高確率である場合(ステップS21;YES)は、高確率報知フラグ領域にオン情報をセーブし(ステップS22)、例えば一括表示装置35に設けられる高確率報知LED(図示略)のオン(点灯)データをセグメント領域にセーブする(ステップS23)。これにより、今回の高確率状態に対応する処置が行なわれることとなり、例えば一括表示装置35に設けられる高確率報知LEDが点灯して高確率状態を知らせる表示がされる。
次いで、後述の特図ゲーム処理を合理的に実行するために用意されている処理番号に対応する停電復旧時のコマンドを演出制御装置300へ送信し(ステップS24)、ステップS29へ進む。
【0123】
一方、ステップS15、S16、S17、S19からステップS25へジャンプした場合には、先ずCPUが使用するRWM内のアクセス禁止領域より前の全作業領域をクリアしてから(ステップS25)、RWM内のアクセス禁止領域より後の全スタック領域をクリアし(ステップS26)、初期化すべき領域に電源投入時の初期値をセーブする(ステップS27)。
ここでの初期化すべき領域とは、ステップS25において書き込まれた値(0)ではない値を初期値とする領域のことであり、本実施例では客待ちデモ領域及び演出モードの設定に係る領域が該当する。これらの領域の具体的な情報は、以下の通りである。
<初期化すべき領域>
・客待ちデモ領域
客待ちデモ中フラグ゛
・演出モードコマンド領域
演出モードコマンド
・セキュリティ信号制御タイマ
・次モード移行情報領域
次モード移行情報
・特図ゲームモード情報コマンド
【0124】
次いで、電源投入時のコマンド(電源投入コマンド)を演出制御装置300に送信する処理を行う(ステップS28)。
なお、ステップS24で送信される停電復旧時のコマンド及びステップS28で送信される電源投入時のコマンドには、以下のコマンドが含まれる。以下に示すように、電源投入時及び停電復旧時に送信するコマンドが同じになっている。
・遊技機の種類を示す機種指定コマンド
・特図1,2の保留数を示す飾り特図1保留数コマンド及び飾り特図2保留数コマンド
・確率の状態を示す確率情報コマンド
また、電源遮断時や電源投入時の状態に応じて、電源遮断時に特図変動表示ゲームの実行中であった場合には、には、以下のコマンドが含まれる。
・復旧画面コマンド
・電源遮断時に客待ち中であった場合は客待ちデモコマンド
・電源投入時に初期化された場合は電源投入コマンド
・機種によって演出モードの状態を示す演出モード情報コマンド
・時短状態での残りゲーム数を示す時短回数情報コマンド
そして、電源投入コマンドが送信されると、他の制御装置は、この電源投入コマンドを受けて、例えば演出制御装置300であれば枠演出装置のモータの動作位置を初期位置にするなどの初期化を行い、RWMクリアがなされたことを報知する演出を開始する。ステップS28を経ると、ステップS29に進む。
【0125】
さて、上述のステップS24あるいはステップS28から、ステップS29に進むと、ステップS29では、遊技用マイコン101(クロックジェネレータ)内のタイマ割込み信号及び乱数更新トリガ信号(CTC)を発生するCTC(Counter/Timer Circuit)回路を起動する処理を行う。
なお、CTC回路は、遊技用マイコン101内のクロックジェネレータに設けられている。クロックジェネレータは、水晶発振器113からの発振信号(原クロック信号)を分周する分周回路と、分周された信号に基づいてCPU101Aに対して所定周期(例えば、4ミリ秒)のタイマ割込み信号及び乱数生成回路へ供給する乱数更新のトリガを与える信号CTCを発生するCTC回路とを備えている。
【0126】
上記ステップS29のCTC起動処理の後は、乱数生成回路を起動設定する処理を行う(ステップS30)。具体的には、乱数生成回路内の所定のレジスタ(CTC更新許可レジスタ)へ乱数生成回路を起動させるためのコード(指定値)の設定などがCPU101Aによって行われる。
また、乱数生成回路のハードウェアで生成されるハード乱数(ここでは大当り乱数)のビット転置パターンの設定も行われる。すなわち、ステップS30の処理では、ハード乱数ビット転置パターンを設定し、大当り乱数のビット転置も行う。
ここで、ビット転置パターンとは、例えば後述の図94に示すように、抽出した乱数のビット配置(上段のビット転置前の配置)を、予め定められた順で入れ替えて異なるビット配置(下段のビット転置後の配置)として格納する際の入れ替え方を定めるパターンである。このビット転置パターンに従い乱数のビットを入れ替えることで、乱数の規則性を崩すことができるとともに、乱数の秘匿性を高めることができる。なお、ビット転置パターンは、固定された単一のパターンであっても良いし、予め用意された複数のパターンから選択するようにしても良い。また、ユーザーが任意に設定できるようにしても良い。
【0127】
次いで、電源投入時の乱数生成回路内の所定のレジスタ(ソフト乱数レジスタ1〜n)の値を抽出し、対応する各種初期値乱数(大当り図柄を決定する乱数(大当り図柄乱数1、大当り図柄乱数2)、普図の当たりを決定する乱数(当り乱数))の初期値(スタート値)としてRWMの所定領域にセーブする(ステップS31)。
ここで、乱数の種類としては、以下がある。
・当り初期値乱数
・大当り図柄初期値乱数1
・大当り図柄初期値乱数2
(これらは、それぞれ異なるソフト乱数レジスタの値を使用)
【0128】
そして、この乱数生成回路によってハード的に特図や普図の各乱数のうちの一部が生成される。但し、これら乱数の初期値は、後述するステップS33の処理によってソフト的に設定される。そして、本実施例で使用するCPU101A内の乱数生成回路においては、電源投入毎にソフト乱数レジスタの初期値が変わるように構成されているため、この値を各種初期値乱数の初期値(スタート値)とすることで、ソフトウェアで生成される乱数の規則性を崩すことができ、遊技者による不正な乱数の取得を困難にすることができる。
なお、特図に関連する乱数としては、大当り乱数(大当りとするか否かを決定するための乱数)、大当り図柄乱数1,2(大当り停止図柄決定用の乱数)、変動パターン乱数(リーチの有無等を含む変動パターンを決定する乱数)、停止図柄乱数(外れの停止図柄決定用の乱数)などがある。また、普図に関連する乱数としては、例えば、普図当り乱数(普図当りとするか否かを決定するための乱数)などがある。このうちステップS30,33で対象とする乱数(ハード乱数)は、例えば、大当り乱数、普図当り乱数、大当り図柄乱数1,2である。なお、上記特図に関する乱数は、特図が2種類ある場合、特図1と特図2で共通でもよいし、別個に設けられていてもよい。
【0129】
次いで、ステップS32で割込みを許可し、次のステップS33では、初期値乱数更新処理を行う。初期値乱数更新処理は、遊技球を発射するタイミングを計って故意に大当り等をねらうことが困難になるように、ハード乱数の初期値を更新する処理である。これは、各種初期値乱数の値を更新して乱数の規則性を崩すためのものである。
なお、上記ステップS33での初期値乱数更新処理は、メイン処理のほか、タイマ割込み処理の中においても初期値乱数更新処理を行う方法もあり、そのような方法を採用した場合には両方で初期値乱数更新処理が実行されるのを回避するため、メイン処理で初期値乱数更新処理を行う場合には割込みを禁止してから更新して割込みを解除する必要があるが、本実施例のようにタイマ割込み処理の中での初期値乱数更新処理はせず、メイン処理内のみした場合には初期値乱数更新処理の前に割込みを解除しても何ら問題はなく、それによってメイン処理が簡素化されるという利点がある。
【0130】
また、特に限定されるわけではないが、本実施例においては、大当り乱数、大当り図柄乱数、当り乱数は乱数生成回路において生成される乱数を使用して生成するように構成されている。ただし、大当り乱数はCPUの動作クロックと同等以上の速度のクロックを基にして更新される所謂「高速カウンタ」であり、大当り図柄乱数、当り乱数はプログラムの処理単位であるタイマ割込み処理と同周期となるCTC出力(タイマ割込み処理のCTC(CTC0)とは別のCTC(CTC2))を基にして更新される「低速カウンタ」である。また、大当り図柄乱数、当り図柄乱数においては、乱数が一巡する毎に各々の初期値乱数(ソフトウェアで生成)を用いてスタート値を変更する所謂「初期値変更方式」を採用している。なお、前記各乱数は、+1或いは−1によるカウンタ式更新でもよいし、一巡するまで範囲内の全ての値が重複なくバラバラに出現するランダム式更新でもよい。つまり、大当り乱数はハードウェアのみで更新される乱数であり、大当り図柄乱数、当り乱数はハードウェア及びソフトウェアで更新される乱数である。
次いでステップS34に進み、電源装置500から入力されている停電監視信号をポート及びデータバスを介して読み込み、停電監視信号のチェック回数(例えば2回)を設定し、次のステップS35で停電監視信号がオンしているか否か判定し、オンしていれば停電の最終判断のためのステップS36に進み、オンしていなければステップS33に戻る。通常運転中は、ステップS33〜S35を繰り返す。
すなわち、停電監視信号がオンでない場合(ステップS35;NO)は、初期値乱数更新処理(ステップS33)に戻る。つまり、停電が発生していない場合には、初期値乱数更新処理と停電監視信号のチェック(ループ処理)を繰り返し行う。初期値乱数更新処理(ステップS33)の前に割り込みを許可する(ステップS32)ことによって、初期値乱数更新処理中にタイマ割込みが発生すると割込み処理が優先して実行されるようになり、タイマ割込みが初期値乱数更新処理によって待たされることで割込み処理が圧迫されるのを回避することができる。
【0131】
そして、ステップS36に進むと、前記チェック回数分だけ停電監視信号のオン状態が継続しているか否か判定し、この判定結果が肯定的であると停電発生と最終判断してステップS37に進み、否定的であれば停電発生と判断できないとしてステップS35に戻る。
なお停電監視信号がオンになると、この停電監視信号をNMI割込信号として、実行中の処理を中断してステップS37以降の停電処理を強制的に実行する態様でもよい。但し本例の構成であると、停電監視信号のオン状態をステップS36で複数回チェックするので、実際には停電が発生していないのにノイズ等によって停電監視信号が一時的かつ瞬間的にオンした場合に停電発生と誤判断してしまうことがないという利点がある。
【0132】
そしてステップS37に進むと、割込を禁止した後、次のステップS38で全ての出力をオフし(全ての出力ポートにオフデータを出力し)、次いでステップS39、S40で停電情報設定処理を実行する。停電情報設定処理では、ステップS39で前述の停電検査領域チェックデータ1を停電検査領域1にセーブし、ステップS40で停電検査領域チェックデータ2を停電検査領域2にセーブする。
ステップS40を経ると、次のステップS41でRWMの電源遮断時のチェックサムを算出する処理を行なった後、ステップS42で算出したチェックサムを所定のチェックサム領域にセーブする。
次いでステップS43でRWMへのアクセスを禁止した後、待機する(前述した制御信号生成部503からのリセット信号を待つリセット待ち状態となる)。
このように、停電復旧検査領域にチェックデータをセーブするとともに、電源遮断時のチェックサムを算出することで、電源の遮断の前にRWMに記憶されていた情報が正しくバックアップされているか否かを電源再投入時に判断することができる。
なお、以上のステップS37〜S43の停電処理は、停電によって電源電圧が遊技用マイコン101の動作電圧未満に低下する前に行われる。
【0133】
〔チェックサム算出処理〕
次に、前記メイン処理におけるチェックサム算出処理(ステップS41)を図10により説明する。
このルーチンが開始されると、まずステップS51で算出アドレスの開始値としてRWMの先頭アドレスを設定し、ステップS52で繰り返し数を設定する。繰り返し数は、使用しているRWMのバイト数に対応して設定される。次いで、ステップS53で算出値として「0」を設定した後、ステップS54で算出値+算出アドレスの内容を新たな算出値として演算する。このようにして、各アドレスの毎の内容を算出値として加算していく。次いで、ステップS55で算出アドレスを「+1」だけ更新し、ステップS56で繰り返し数を「−1」だけ更新して算出終了かをチェックし、ステップS57で算出終了か否かを判定しする。ステップS57の判定結果がNOであれば、ステップS54に戻ってルーチンを繰り返す。そして、繰り返した回数=RWMのバイト数になると、算出終了と判断してステップS57からYESに抜けて、ルーチンを終了する。
このようにして、RWMの電源遮断時におけるチェックサムの算出が行われる。
【0134】
〔初期値乱数更新処理〕
次に、前記メイン処理における初期値乱数更新処理(ステップS33)を図11により説明する。
このルーチンが開始されると、当り初期値乱数をインクリメント(更新(+1))する処理(ステップS61)、大当り図柄初期値乱数1をインクリメント(更新(+1))する処理(ステップS62)、大当り図柄初期値乱数2をインクリメント(更新(+1))する処理(ステップS63)を順次行う。
ここで、「大当り図柄初期値乱数1」は、特図1の大当り停止図柄を決定する乱数の初期値となる乱数で、0〜99の範囲で更新していく。「大当り図柄初期値乱数2」は、特図2の大当り停止図柄を決定する乱数の初期値乱数のことで、0〜99の範囲で更新していく。ある。また、「当り初期値乱数」は普図変動ゲームの当りを決定する乱数の初期値となる乱数のことで、0〜250の範囲で更新していく。ある。このように、メイン処理の中で時間が許す限り乱数をインクリメントし続けることによって、乱数のランダム性を高めることができるようにしている。
【0135】
〔タイマ割込処理〕
次に、遊技制御装置100(遊技用マイコン101)のタイマ割込処理を図12により説明する。
このタイマ割込処理は、前述したメイン処理におけるステップS29,S32の処理によって開始され、所定のタイマ割込周期で繰り返し実行される。
【0136】
このタイマ割込処理では、まずステップS71で、必要に応じてレジスタの退避や割込みの禁止を実行する。レジスタの退避では、例えば所定のレジスタに保持されている値をRWMに移すレジスタ退避の処理を行う。なお、本実施例において遊技用マイコンとして使用しているZ80系のマイコンでは、当該処理を表レジスタに保持されている値を裏レジスタに退避することで置き換えることができる。
次いで、ステップS72で入力処理を実行する。この入力処理では、前述の各センサ類(始動口スイッチ120、121、ゲートスイッチ122、入賞口スイッチ123、下カウントスイッチ124、上カウントスイッチ125など)の検出信号の読み取りを実行する。具体的には、各センサの出力値をタイマ割込周期毎に判定し、同じレベルの出力値が規程回数(例えば、2回)以上継続した場合に、この出力値のレベルを各センサの検出信号の確定的な値として読み取る。なお、何れかのセンサがオンしていることが読み取られると、それを示すフラグ(入力フラグ)がたてられる。
【0137】
次に、ステップS73で、後述する各ステップで設定された出力データを対応する出力ポートに設定し出力する出力処理を実行する。これは、各種処理でセットされた出力データに基づき、ソレノイド(第1大入賞口ソレノイド133、第2大入賞口ソレノイド134、普電ソレノイド132)等のアクチュエータの駆動制御などを行うための処理である。
次いでステップS74で、払出コマンド送信処理を行う。これは、主基板たる遊技制御装置100とサブ基板たる演出制御装置300との間がシリアル通信でコマンドを送信するようになったことで、排出コマンドの送信処理のみを行うものである。ここでは、遊技用マイコン101の送信バッファにセットされたコマンドを演出制御装置300に出力することになる。
次いで、ステップS75、S76で乱数更新処理1、2をそれぞれ実行する。ここでは、特図に関連するソフト乱数及び普図に関連するソフト乱数の更新が行われる。特図に関連するソフト乱数としては、例えば、大当り図柄乱数1,2(大当り停止図柄決定用の乱数)、変動パターン乱数(リーチアクションの有無等を含む変動パターンを決定する乱数)、停止図柄乱数(外れの停止図柄決定用の乱数)などがある。ここでの、乱数の更新は、乱数を例えば「1」ずつ増やすことにより実行される。したがって、このタイマ割込み処理のルーチンが繰り返される毎に、乱数が変り、このソフト乱数の抽出値がアトランダム性を保つようになる。
【0138】
なお、上記変動パターン乱数は、本例では変動パターン乱数1〜3の3種類が有る。このうち、変動パターン乱数1は後半変動(リーチ開始後の変動)のリーチ系統を選択するための乱数であり、変動パターン乱数2はリーチ系統の中から詳細な演出の振分(例えばプラス1コマで特図が停止するかマイナス1コマで特図が停止するか)を行うための乱数であり、変動パターン乱数3は前半変動(リーチ開始前までの変動)の態様を選択するための乱数である。また、上記変動パターン乱数は変動態様の全てを直接決定するものでもよいが、本例では、具体的な態様は演出制御装置300が決定する。例えば、変動時間とリーチ系統(リーチの大まかな種別)のみを変動パターン乱数1により決定し、決定した変動時間とリーチ系統に基づいて演出制御装置300が具体的な変動態様を決定する。
【0139】
次いで、ステップS77では、入賞口スイッチ監視処理とエラー監視処理を実行する。入賞口スイッチ監視処理は、前述したように設定される入力フラグ(特図の始動口スイッチ120、121、入賞口スイッチ123、下カウントスイッチ124及び上カウントスイッチ125)を監視し、例えば下カウントスイッチ124の入力フラグが設定されていると、15個の賞球払い出しを払出制御装置200に要求する前準備などの処理を実行するものである。またエラー監視処理は、前述の各センサ類の未検出エラーや、賞球排出の過剰エラーや、ガラス枠5の開放状態、及び大入賞口27a(第1大入賞口)、第2変動入賞装置33の開口部(第2大入賞口)、普電26の開放中以外での不正入賞などを監視するための処理である。
【0140】
次に、ステップS78では、特図ゲーム処理を行う。この特図ゲーム処理では、特図の変動表示ゲーム全体の統括的制御が行われる。即ち、変動開始条件(変動表示ゲームの開始条件)の成立時において、大当り乱数の判定や、特図の停止図柄の組み合わせ(結果態様)を設定する処理や、特図の変動態様を設定する処理が行われる(詳細後述する)。
ここで、変動開始条件の成立時とは、客待ち状態で始動口入賞があって変動表示ゲームが開始される時、変動表示ゲームがはずれで終了し始動記憶があって再度変動表示ゲームが実行される時、大当たりが終了して始動記憶があって再度変動表示ゲームが実行される時の3種類がある。
また、この特図ゲーム処理では、特図の変動表示ゲームに関する各種出力データを設定する処理も行われる。即ち、特図の変動表示ゲームの遊技状態に合わせて、例えば、演出制御装置300などへ送信するコマンドの内容(コマンドデータ)を設定する。
【0141】
次いで、ステップS79では、普図の変動表示ゲームのための処理を行う。即ち、普図の変動表示遊技の状態に合わせて演出制御装置300などへ送信するコマンドの内容を設定する処理などを行う。
次に、ステップS80では、セグメントLED編集処理を実行する。これは、ステップS78の特図ゲーム処理において決定された特図の図柄やステップS79の普図ゲーム処理において決定された普図の図柄、その他の情報を、一括表示装置35の本特図の表示器(LED、7セグメントの表示器)において表示するための処理である。
次に、ステップS81では磁石不正監視処理を実行する。これは、磁気センサ126からの検出信号をチェックして異常がないか判定するものである、例えば、磁気センサ126の入力フラグが設定されていると、磁気エラーが発生したとして、所定の処理(エラー報知コマンドの送信等)を実行する。
【0142】
次いで、ステップS82では電波不正監視処理を実行する。これは、電波センサ127からの検出信号をチェックして異常がないか判定するものである、例えば、電波センサ127の入力フラグが設定されていると、電波を用いた不正が発生したとして、所定の処理(エラー報知コマンドの送信等)を実行する。
次に、ステップS83では外部情報編集処理を実行する。これは、遊技制御装置100から外部へ出力しようとするデータの編集を行うものである。このデータは、払出制御装置200や外部情報端子板55への出力データ(大当たり信号、賞球信号等の他、固有IDも含む)となる。
その後、メインルーチンを再開すべく、ステップS84でタイマ割込み要求をクリアし、ステップS85で退避させたレジスタを復帰させ、ステップS86で割込を許可し、そして割込時に中断した処理に復帰(リターン)する。
【0143】
〔入力処理〕
次に、前記タイマ割込み処理における入力処理(ステップS72)を図13により説明する。
入力処理においては、まず入力ポート1、即ち、第1入力ポート160に取り込まれたスイッチの検出信号の状態を読み込む(ステップS91)。そして、8ビットのポートのうち未使用ビットがあればそのビットの状態をクリアする(ステップS92)。
ここで、入力ポート1で監視するスイッチは、以下の通りである。
・ガラス枠開放検出スイッチ(ビット0)
・前面枠開放検出スイッチ(ビット1)
・払出異常ステータス信号(ビット4)
・シュート球切れスイッチ信号(ビット5)
・オーバーフロースイッチ信号)ビット6)
続いて、読み込まれた入力ポート1の状態をRWM内のスイッチ制御領域1にセーブ(格納)する(ステップS93)。次いで、ステップS94で未使用のビットデータを準備する。
ここで、本実施例において「準備」とは、レジスタに値をセットすることを意味するが、これに限らず、RWM、その他のメモリに値をセットするようにしてもよい。
次いで、ステップS95で反転するビットデータを準備する。例えば、電波センサ127は検出信号の反転が必要なので、そうようなセンサ/スイッチ等のビットデータを準備するものである。
【0144】
次いで、ステップS96でRWM内のスイッチ制御領域2のアドレスを準備し、ステップS97で入力ポート2、即ち、第2入力ポート161のアドレスを準備し、さらにステップS98でスイッチ読込み処理を行う。
ここで、入力ポート2で監視するスイッチは、以下の通りである。
・始動口2スイッチ(ビット0):第2始動口スイッチ121
・始動口1スイッチ(ビット1):第1始動口スイッチ120
・左入賞口スイッチ(ビット2):入賞口スイッチ1_123
・右入賞口スイッチ(ビット3):入賞口スイッチ2_123
・ゲートスイッチ(ビット4):ゲートスイッチ122
・下大入賞口スイッチ1(ビット5):下カウントスイッチ1_124
・下大入賞口スイッチ2(ビット6):下カウントスイッチ2_124
・上大入賞口スイッチ(ビット7):上カウントスイッチ125
なお、図4では示していないが、入賞口スイッチ123に対応するものとして、例えば複数(2個)の入賞口スイッチを配置する場合もあるので、その例として、上記では左入賞口スイッチ(ビット2):入賞口スイッチ1_123、右入賞口スイッチ(ビット3):入賞口スイッチ2_123のような表記として、2個のスイッチを入力ポート2で監視するようにしている。これは、下大入賞口スイッチ124についても同様である。後述の磁気センサ126についても、複数を配置して入力ポート3で監視するようにしてもよい。
次いで、ステップS99で未使用のビットデータを準備するとともに、ステップS100で反転するビットデータを準備する。その後、ステップS101でRWM内のスイッチ制御領域3のアドレスを準備し、ステップS102で入力ポート3、即ち、第3入力ポート162のアドレスを準備し、さらにステップS103でスイッチ読込み処理を行い、入力処理を終了する。
ここで、入力ポート3で監視するスイッチは、以下の通りである。
・電波センサ(ビット0):電波センサ127
・スイッチ異常検知信号1(ビット1)
・磁気センサ(ビット2):磁気センサ126
・スイッチ異常検知信号2(ビット3)
【0145】
〔スイッチ読込み処理〕
次に、上述の入力処理におけるスイッチ読込み処理(ステップS103)を図14により説明する。
スイッチ読込み処理においては、対象の入力ポートに取り込まれた信号の状態を読み込む(ステップS111)。これは、1回目の読み込みに相当する。次いで、8ビットのポートのうち未使用ビットがあれば、そのビットの状態をクリアし(ステップS112)、反転の必要なビットを反転(ステップS113)した後、RWM内の対象のスイッチ制御領域のポート入力状態1にセーブ(格納)する(ステップS114)。その後、2回目の読込みまでのディレイ時間(0.1ms)が経過するのを待つ(ステップS115)。
【0146】
ディレイ時間(0.1ms)が経過すると、対象の入力ポートに取り込まれた信号の状態の2回目の読込みを行う(ステップS116)。そして、8ビットのポートのうち未使用ビットがあれば、そのビットの状態をクリアし(ステップS117)、反転の必要なビットを反転(ステップS118)した後、対象のスイッチ制御領域のポート入力状態2にセーブ(格納)する(ステップS119)。その後、1回目と2回目の読込みで変化したビット、即ち、信号を検出し、確定ビットパターンを作成する(ステップS120)。具体的には、読み込まれた対象の入力ポートの状態のうち、1回目と2回目で状態が同じビットを「1」、違うビットを「0」とした確定ビットパターンを作成する。次いで、確定ビットパターンとポート入力状態2との論理積をとり、今回確定ビットとする(ステップS121)。
【0147】
次いで、1回目と2回目の読込みで状態が同じビットを0、違うビットを1とした未確定ビットパターンを作成し(ステップS122)、未確定ビットパターンと前回割り込み時の確定状態との論理積をとり、前回保持ビットとする(ステップS123)。これにより、スイッチのチャタリング等によるノイズを除去した信号の状態を得ることができる。そして、今回確定ビットと前回保持ビットを合成し、今回確定状態としてRWMにセーブし(ステップS124)、前回と今回の確定状態との排他的論理和をとり、立上りエッジとしてRWMにセーブして(ステップS125)、スイッチ読み込み処理を終了する。
【0148】
なお、スイッチの読込みは、タイマ割込みの周期が短い場合(例えば2ms)には、各割込みの処理ごとにそれぞれ1回ずつスイッチの読込みを行なって前回の読込みの結果と比較することで信号が変化したか否か判定する方法があるが、そのようにすると次の割込み処理までに前回の割込みで読み込んだスイッチの状態が失われた場合、正しい判定が行なえないおそれがある。また、単純計算でタイマ割込み周期の2倍以上の時間分、スイッチの入力パルスが保持されなくてはならないので、パルスを延長する電気回路の設計やスイッチを通過する遊技球の速度を遅くするための球流路の構造設計などが必要になる。
これに対し、本実施例のように、所定の時間差をおいて1回の割込み処理の中で2回のスイッチ読込み処理を行うことで、タイマ割込みの周期を延ばすことによる割込み内の処理可能量増加と、構造設計等の容易さを両立させ、上記のような不具合を回避することが可能となる。
【0149】
〔出力処理〕
次に、上述のタイマ割込み処理における出力処理(ステップS73)を図15により説明する。
出力処理では、まず一括表示装置(LED)35のセグメントのデータを出力するポート176(図5参照)の出力データを全てオフにする(ステップS131)。続いて、第1大入賞口ソレノイド133、第2大入賞口ソレノイド134、普電ソレノイド132のデータを出力する機能を有する第3ポート175に出力するデータを合成して出力する(ステップS132)。
次いで、一括表示装置(LED)35のデジット線を順次スキャンするためのデジットカウンタの値を更新(0〜3の範囲で(+1)更新)(ステップS133)し、デジットカウンタの値に対応するLEDのデジット線の出力データをロード(取得)する(ステップS134)。次いで、取得したデータをデジット出力ポート(第5ポート177)に出力する(ステップS135)。第5ポート177は一括表示装置35のLEDのカソード端子が接続されているデジット線のオン/オフデータを出力するための出力ポートである。
次いで、デジットカウンタの値に対応するRWM内のセグメントデータ領域からセグメント線の出力データをロード(取得)し(ステップS136)、取得したセグメント出力データをセグメント出力用のポート(第4ポート176)に出力する(ステップS137)。第4ポート176は一括表示装置35に表示する内容に応じてLEDのアノード端子が接続されているセグメント線のオン/オフデータを出力するための出力ポートである。
【0150】
続いて、外部情報端子基板55へ出力するデータをロードして合成し、外部情報出力用のポート(第6ポート180)へ出力する(ステップS138)。第6ポート180は大当り情報などパチンコ機1に関する情報を外部情報信号(図4に示す外部情報)として外部情報端子板55へ出力するための出力ポートである。
次いで、試射試験装置へ出力する試験信号の出力データ1〜3をロードして合成し、中継基板170上に設けられている試験端子出力ポート1へ合成したデータを出力する(ステップS139)。さらにその後、試射試験装置へ出力する試験信号の出力データ4〜6をロードして合成し、中継基板170上に設けられている試験端子出力ポート2へ合成したデータを出力する(ステップS140)。
次いで、試射試験装置へ出力する試験信号の出力データ7〜8をロードして合成し、中継基板170上に設けられている試験端子出力ポート3へ合成したデータを出力する(ステップS141)。また、試射試験装置へ出力する試験信号の出力データ9〜10をロードして合成し、中継基板170上に設けられている試験端子出力ポート4へ合成したデータを出力する(ステップS142)。さらに、試射試験装置へ出力する試験信号の出力データ11をロードして合成し、中継基板170上に設けられている試験端子出力ポート5へ合成したデータを出力(ステップS143)して、図15の出力処理を終了する。
【0151】
〔払出コマンド送信処理〕
次に、上述のタイマ割込み処理における払出コマンド送信処理(ステップS74)を図16により説明する。
払出コマンド送信処理では、まず、賞球数別(例えば、3個賞球、10個賞球、14個賞球)に設けられた複数の入賞数カウンタ領域のうち、チェック対象とされた入賞数カウンタ領域に「0」でないカウント数があるかを判定する(ステップS151)。
入賞数カウンタ領域の構造は、例えば以下の通りである。
・3個賞球カウンタ
・10個賞球カウンタ
・14個賞球カウンタ
各々の入賞数カウンタ領域は255個入賞まで記憶可能になっており、入賞数カウンタ領域のチェックでは、上述したカウンタを上から(3個賞球カウンタから)順にチェックしていく。
フローに戻り、カウント数がない場合(ステップS151:NO)は、チェック対象となる入賞数カウンタ領域のアドレスを更新し(ステップS152)、すべての入賞数カウンタ領域のカウント数のチェックが終了したかを判定する(ステップS153)。この判定で、すべてのチェックが終了した(ステップS153;YES)と判定すると、払出コマンド送信処理を終了する。一方、すべてのチェックが終了していない(ステップS153;NO)と判定すると、ステップS151へ戻って上記処理を繰り返す。
【0152】
また、上記ステップS151で、カウント数がある(ステップS151;YES)と判定した場合には、対象の入賞数カウンタ領域のカウント数を減算(−1)し(ステップS154)、入賞数カウンタ領域のアドレスに対応する払出コマンド(負論理のデータ)を取得する(ステップS155)。そして、データの読込みが有効か無効かを示すストローブ信号のオフ時間(例えばロウレベルに維持する時間、例えば0.015ms)を計時するストローブオフタイマを設定し(ステップS156)、上記ステップS155で取得した払出コマンド(負論理のデータ)とオフ状態(ロウレベル)のストローブ信号をポート171(図5参照)へ出力する(ステップS157)。
【0153】
その後、ストローブオフタイマを−1更新し(ステップS158)、ストローブオフタイマの値が0であるか、すなわちステップS156で設定したオフ時間が経過したかを判定する(ステップS159)。ストローブオフタイマの値が0でない場合(ステップS159;NO)、すなわちオフ時間が経過していない場合は、ステップS157へ戻る。また、ストローブオフタイマの値が0である場合(ステップS159;YES)、すなわちオフ時間が経過した場合は、負論理データの出力残り時間(例えば0.030ms)を計時する負論理出力残りタイマを設定する(ステップS160)。
【0154】
次に、払出コマンド(負論理のデータ)を出力するとともにオン状態(ハイレベル)のストローブ信号をポート171へ出力する(ステップS161)。そして、負論理出力残りタイマを−1更新し(ステップS162)、負論理出力残りタイマの値が0であるか、すなわちステップS160で設定した負論理データの出力時間が終了したかを判定する(ステップS163)。負論理出力残りタイマの値が0でない場合(ステップS163;NO)、すなわち負論理データの出力時間が終了していない場合はステップS161へ戻る。また、負論理出力残りタイマの値が0である場合(ステップS163;YES)、すなわち負論理データの出力時間が終了した場合は、上記負論理の払出コマンドデータを反転して正論理の払出コマンドデータを生成する(ステップS164)。
【0155】
次に、ストローブ信号のオン残り時間(ハイレベルの時間、例えば0.015ms)を計時するストローブオン残りタイマを設定し(ステップS165)、上記ステップS164で生成した払出コマンド(正論理のデータ)とオン状態(ハイレベル)のストローブ信号をポート171へ出力する(ステップS166)。その後、ストローブオン残りタイマを−1更新し(ステップS167)、ストローブオン残りタイマの値が0であるか、すなわちステップS165で設定したオン時間が終了したかを判定する(ステップS168)。ストローブオン残りタイマの値が0でない場合(ステップS168;NO)、すなわちオン時間が終了していない場合はステップS166へ戻る。また、ストローブオン残りタイマの値が0である場合(ステップS168;YES)、すなわちオン時間が終了した場合は、正論理データの出力残り時間(例えば0.030ms)を計時する正論理出力残りタイマを設定する(ステップS169)。
【0156】
その後、払出コマンド(正論理のデータ)を出力するとともにオフ状態(ロウレベル)のストローブ信号をポート171へ出力する(ステップS170)。そして、正論理出力残りタイマを−1更新し(ステップS171)、正論理出力残りタイマの値が0であるか、すなわちステップS169で設定した正論理データの出力時間が終了したかを判定する(ステップS172)。正論理出力残りタイマの値が0でない場合(ステップS172;NO)、すなわち出力時間が終了していない場合はステップS170へ戻る。また、正論理出力残りタイマの値が0である場合(ステップS172;YES)、すなわち終了した場合は、遊技制御装置100から外部装置に対して送信する払出予定の賞球数に関する情報を設定するメイン賞球残数更新処理(ステップS173)を行い、コマンド送信処理を終了する。
【0157】
以上の処理により、払出制御装置200に遊技球の払い出しを指示する払出コマンドが送信され、払出制御装置200ではこの払出コマンドに基づき遊技球を払い出す。上記のように、負論理の払出コマンドデータを出力した後に正論理の払出コマンドデータを出力することによって、コマンド受信側では、負論理の払出コマンドデータと正論理の払出コマンドデータを読み込んで比較することによって、正しいコマンドを受信することができたか否かを判定することができる。例えば、先に受信した負論理の払出コマンドデータを論理反転して、それと後で受信した正論理の払出コマンドデータとを比較して、同一でない場合にはコマンド受信エラーと判断し、コマンドの再送を遊技制御装置100へ要求することで正確なコマンドを受信することが可能となる。
【0158】
〔メイン賞球残数更新処理〕
次に、前述の払出コマンド送信処理におけるメイン賞球残数更新処理(ステップS173)の詳細について、図17により説明する。
このメイン賞球残数更新処理では、入賞口への入賞により発生した賞球数(払出予定数)が所定数(ここでは10個)になる毎に外部装置へ出力するメイン賞球信号を設定する。外部装置には、このメイン賞球信号の他に、払出制御装置200からも実際に払い出した賞球数が所定数(ここでは10個)になる毎に賞球信号が出力されるようになっており、この二つの信号を照合することで、不正な払い出しを監視することが可能となっている。
すなわち、メイン賞球残数更新処理は遊技制御装置100から払出予定に基づいて賞球信号を外部装置に送信することで、払出の実払出(払出制御装置200から実際に払い出した賞球数)との整合性をとるために行われる処理である。
なお、賞球信号は主基板たる遊技制御装置100からは10個払出予定数毎に1パルスが出力され、払出基板たる払出制御装置200からは10個払出数に1パルスが出力されるようになっている。
【0159】
図17に示すようにメイン賞球残数更新処理では、まず、賞球残数領域の値と払出数(払出コマンド(正論理の値))を加算する(ステップS181)。この処理の前における賞球残数領域の値としては、メイン賞球信号の出力の基準となる所定数に満たなかった端数が記憶されており、この処理において、賞球残数領域の値に新たに発生した賞球の払出数として正論理の払出コマンドの値を加算する。そして、加算した値を賞球残数領域にセーブする(ステップS182)。
【0160】
その後、賞球残数領域の値からメイン賞球信号の出力の基準となる所定数である10を減算し(ステップS183)、減算結果が0以上であるかを判定する(ステップS184)。減算結果が0以上でない場合(ステップS184;NO)は、メイン賞球残数更新処理を終了する。また、減算結果が0以上である場合(ステップS184;YES)は、メイン賞球信号出力回数領域の値を+1更新し(ステップS185)、減算結果を賞球残数領域にセーブして(ステップS186)、ステップS183に戻る。
【0161】
〔乱数更新処理1〕
次に、上述のタイマ割込み処理における乱数更新処理1(ステップS75)を図18により説明する。
乱数更新処理1は、図11の初期値乱数更新処理の対象となっている大当り図柄乱数1、当り乱数、大当り図柄乱数2の初期値(スタート値)を更新するための処理である。
乱数更新処理1においては、まず、普図の当り乱数が次回の初期値(スタート値)設定待ちであるかを判定する(ステップS191)。
【0162】
普図の当り乱数が初期値設定待ちでない場合(ステップS191;NO)は、大当り図柄乱数1が次回の初期値(スタート値)設定待ちであるかを判定する(ステップS194)。また、普図の当り乱数が初期値設定待ちである場合(ステップS191;YES)は、次回初期値として当り乱数初期値乱数をロードし(ステップS192)、ロードした普図の当り乱数の次回の初期値を対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタ(スタート値設定レジスタ)に設定する(ステップS193)。その後、大当り図柄乱数1が次回の初期値(スタート値)設定待ちであるかを判定する(ステップS194)。
【0163】
大当り図柄乱数1が初期値設定待ちでない場合(ステップS194;NO)は、大当り図柄乱数2が次回の初期値(スタート値)設定待ちであるかを判定する(ステップS197)。また、大当り図柄乱数1が初期値設定待ちである場合(ステップS194;YES)は、次回初期値として大当り図柄初期値乱数1をロードし(ステップS195)、ロードした大当り図柄乱数1の次回の初期値を対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタ(スタート値設定レジスタ)に設定する(ステップS196)。その後、大当り図柄乱数2が次回の初期値(スタート値)設定待ちであるかを判定する(ステップS197)。
【0164】
大当り図柄乱数2が初期値設定待ちでない場合(ステップS197;NO)は、乱数更新処理1を終了する。また、大当り図柄乱数2が初期値設定待ちである場合(ステップS197;YES)は、次回初期値として大当り図柄初期値乱数2をロードし(ステップS198)、ロードした大当り図柄乱数2の次回の初期値を対応する乱数カウンタ(乱数領域)のスタート値を保持するレジスタ(スタート値設定レジスタ)に設定し(ステップS199)、乱数更新処理1を終了する。
【0165】
〔乱数更新処理2〕
次に、上述のタイマ割込み処理における乱数更新処理2(ステップS76)を図19により説明する。
乱数更新処理2は、特図1,特図2の変動表示ゲームにおける変動パターンを決定するための変動パターン乱数を更新する処理である。
なお、本実施例においては、変動パターン乱数として1バイトの乱数(変動パターン乱数2、3)と、2バイトの乱数(変動パターン乱数1)があり、図21の乱数更新処理2は両方を更新対象とし、割込みが発生するごとに更新対象を切り替えて処理する。しかも、更新対象の乱数が2バイトの場合には、上位のバイトと下位のバイトに対して異なる割込み時に更新処理を行うようになっている。即ち、メイン処理に対する一の割り込み処理において実行される乱数更新処理2による2バイトの変動パターン乱数1(リーチ変動態様決定用乱数)の更新は、上位1バイト若しくは下位1バイトの何れかについて実行されるように構成されている。
【0166】
乱数更新処理2においては、まず更新すべき複数の乱数のうちいずれの乱数を今回の更新処理の対象とするかを順番に指定するための乱数更新スキャンカウンタを更新する(ステップS201)。ここでは、0乃至3の範囲で更新する。
なお、更新する乱数の種類は、以下の通りである。
・0のとき:変動パターン乱数1(上位)
・1のとき:変動パターン乱数1(下位)
・2のとき:変動パターン乱数2
・3のとき:変動パターン乱数3
次に、乱数更新スキャンカウンタの値に対応する演出乱数更新テーブルのアドレスを算出する(ステップS202)。そして、算出されたアドレスに基づいて参照したテーブルから乱数の上限判定値を取得する(ステップS203)。このとき参照するテーブルには、乱数の種類ごとに上限値、即ち、乱数が一巡したか否かを判定するための値が格納されている。
ここで、演出乱数更新テーブルには更新する乱数の種類分(4ブロック)のデータがあり、詳細は以下の通りである。
・上限判定値
・Rレジスタのマスク値
・更新する乱数領域の種別情報(詳細は下記)
1バイト乱数
2バイト乱数(上位)
2バイト乱数(下位)
・更新領域のアドレス
【0167】
続いて、例えば本実施例において遊技用マイコンとして使用しているZ80系のマイコンに設けられているDRAMのリフレッシュ等のため使用されるリフレッシュレジスタ(以下、Rレジスタと称する)のようなランダムな値が設定されるレジスタの値を読み込む(ステップS204)。Rレジスタの値を使用することで、乱数にランダム性を付与することができる。ステップS204の次は、Rレジスタの値をマスクするためのマスク値を取得して、Rレジスタの値をマスクする(ステップS205)。なお、マスク値は、更新対象の乱数によって異なるビット数、例えば、変動パターン乱数1の下位1バイトを更新する場合には、Rレジスタの下位3ビットに、また、変動パターン乱数1の上位1バイトを更新する場合には、Rレジスタの下位4ビットに設定されている。乱数の種類によって上限値が異なるためである。
なお、マスク値として、変動パターン乱数1の下位1バイトを更新する場合には、Rレジスタの下位3ビットを、また、変動パターン乱数1の上位1バイトを更新する場合には、Rレジスタの下位4ビットを例示したが、数値は一例であってこれに限られるものではない。
【0168】
次に、更新する乱数領域が2バイト乱数の上位かどうかをチェックする(ステップS206)。2バイト乱数の上位であれば(ステップS206;YES)、ステップS207に進み、マスク値によってRレジスタの値をマスクすることによって残った値(以下、これをマスクした値と称する)に「1」を加算したものを加算値(上位)とし、また、「0」を加算値(下位)としてステップS208に進む。
マスクした値に「1」を加算するのは、マスクした値が「0」になる場合があり、「0」を後に加算すると加算する前の値から変化しないので、それを避けるためである。
一方、更新する乱数領域が2バイト乱数の下位又は1バイト乱数であれば(ステップS206;NO)、ステップS209に分岐して「0」を加算値(上位)とし、マスク値に「1」を加算したものを加算値(下位)としてステップS208に進む。
【0169】
次のステップS208では、更新する乱数領域(乱数カウンタ)が2バイト乱数かどうかをチェックする。ここで、2バイト乱数でなければステップS210へジャンプする(ステップS208;NO)。一方、乱数領域が2バイト乱数であるときはステップS211へ進む(ステップS208;YES)。ステップS210では、「0」を乱数値(上位)とし、マスク値に「1」を加算したものを更新する乱数領域の値(下位)としてステップS212に進む。
乱数領域が2バイト乱数であるときは、ステップS211で更新する乱数領域の値(2バイト)を乱数値としてステップS212に進む。
【0170】
次いで、ステップS212では乱数値にステップS207、S209で決定した加算値を加算した値を算出して新たな乱数値を求め、この乱数値がステップS203で取得した上限判定値を超えているかどうかを判定する(ステップS213)。
新たに算出した乱数値が上限判定値を超えていれば、算出した乱数値から上限判定値を差し引いて今回の乱数値とし(ステップS214)、その後、ステップS215に進む。一方、新たに算出した乱数値が上限判定値を超えていなければ、算出した乱数値を今回の乱数値とし、ステップS214をジャンプしてステップS215に進む。
ステップS215では、乱数値の下位を対応する乱数領域にセーブする。ここでは、1バイト乱数領域又は2バイト乱数の下位領域のいずれかの領域にセーブする。続いて、更新した乱数が2バイト乱数かをチェックし(ステップS216)、2バイト乱数であれば(ステップS216;YES)、乱数値の上位を乱数領域の上位(2バイト乱数(上位))側にセーブする(ステップS217)。ここでは、2バイト乱数の上位の領域にセーブする。ステップS217を経ると、当該乱数更新処理2を終了する。
一方、更新した乱数が2バイト乱数でなければ(ステップS216;NO)、ステップS217をジャンプし、その処理は行わず、当該乱数更新処理2を終了する。
【0171】
このように、CPU101Aは、特図1,特図2の変動表示ゲームにおける変動パターンを決定するための変動パターン乱数を更新する。また、変動パターンとしては、後述するように、「リーチなし」の変動パターンや、「ノーマルリーチ」、「スペシャル(SP)1−Aリーチ」、「スペシャル(SP)1−Bリーチ」、「スペシャル(SP)2−Aリーチ」、「スペシャル(SP)2−Bリーチ」、「スペシャル(SP)3−Aリーチ」、「スペシャル(SP)3−Bリーチ」等の各種リーチ状態における変動パターン(リーチ変動態様)が規定されている。
従って、CPU101Aは、始動入賞口25や普通変動入賞装置26の始動領域への遊技球の流入に基づいて抽出された各種乱数のうち、リーチ状態におけるリーチ変動態様を決定するためのリーチ変動態様決定用乱数(変動パターン乱数)を更新する乱数更新手段をなす。
【0172】
〔入賞口スイッチ/エラー監視処理〕
次に、上述のタイマ割込み処理における入賞口スイッチ/エラー監視処理(ステップS77)を図20により説明する。
入賞口スイッチ/エラー監視処理は、各種入賞口に設けられたスイッチから信号の入力(信号の変化)があるか否かの監視や、エラーの監視を行う処理である。
【0173】
入賞口スイッチ/エラー監視処理においては、まず下大入賞口(変動入賞装置27)内の一方の下カウントスイッチ124に対応する入賞口監視テーブル1(例えば、一方の下カウントスイッチ124からの検出信号が入力されるポートの番号や該信号のポート内でのビット位置等を示すデータが格納されている)を準備する(ステップS221)。本実施例では、下カウントスイッチ124が2つ設けられ、変動入賞装置27の大入賞口内に流入した遊技球は何れかの下カウントスイッチ124に検出されるようになっているので、ここでは一方の下カウントスイッチ124に対応する入賞口監視テーブル1を準備するものである。
次いで、大入賞口が開いていないにもかかわらず大入賞口に不正な入賞がないか監視するとともに、正常な入賞を検出する不正&入賞監視処理(ステップS222)を実行する。
【0174】
その後、下大入賞口(変動入賞装置27)内の他方の下カウントスイッチ124に対応する入賞口監視テーブル2を準備し(ステップS203)、不正な入賞がないか監視するとともに、正常な入賞を検出する不正&入賞監視処理(ステップS204)を実行する。次いで、上大入賞口(第2変動入賞装置33)内の上カウントスイッチ125に対応する入賞口監視テーブルを準備し(ステップS205)、不正な入賞がないか監視するとともに、正常な入賞を検出する不正&入賞監視処理(ステップS306)を実行する。
このように、カウントスイッチは3つあり、下大入賞口に配置される下カウントスイッチ124が2つ、上大入賞口に配置される上カウントスイッチ125が1つである。
次いで、普電内の入賞口スイッチの不正監視テーブルを準備する(ステップS227)。普電内の入賞口スイッチとしては、普通電動役物(普電)としての第2始動入賞口26への入賞を検出する第2始動口スイッチ121がある。
次いで、不正な入賞がないか監視するとともに、正常な入賞を検出する不正&入賞監視処理(ステップS228)を実行する。
【0175】
その後、不正監視が不要な入賞口スイッチの入賞監視テーブル(例えば、不正監視不要なスイッチを示すリスト)を準備する(ステップS229)。不正監視が不要な入賞口スイッチとしては、例えば第1始動口スイッチ120、一般入賞口28〜31に対して設けられた入賞口スイッチ123がある。不正監視が不要な入賞口スイッチについては、不正監視はしないが入賞検出処理は行うので、ステップS229でその処理のために入賞監視テーブルを用意し、次のステップで、入賞数を更新する入賞数カウンタ更新処理(ステップS230)を実行するものである。この入賞数カウンタ更新処理の詳細な手順については、後述する。
【0176】
入賞数カウンタ更新処理(ステップS230)の後は、エラーを監視すべき複数のスイッチ並びに信号のうちいずれのスイッチ又は信号を今回の監視の対象とするかを順番に指定するためのエラースキャンカウンタを更新(0乃至3の範囲で「+1」更新)し、準備する(ステップS231)。続いて、遊技機エラー監視テーブル1を準備する(ステップS232)。
遊技機を監視するエラーの種類としては、以下のものがあり、これらは払出制御装置200からのシュート球切れスイッチ、オーバーフロースイッチ、払出制御装置200の異常監視用のエラーなどに対応する。
(イ)0のとき:スイッチ異常エラー(コネクタ抜け、スイッチ故障など)
(ロ)1のとき:シュート球切れエラー
(ハ)2のとき:オーバフローエラー
(ニ)3のとき:払い出し異常エラー
【0177】
次いで、遊技機エラー監視テーブル1で定義した種類のエラーチェックを行い(ステップS233)、その後、エラースキャンカウンタが「3」になったか否かを判定する(ステップS234)。エラースキャンカウンタが「3」になっていなければ、遊技機エラー監視テーブル2を準備する(ステップS235)。
遊技機エラー監視テーブル2で定義するエラー監視の種類は、下記の通りである。
(ホ)0のとき:ガラス枠開放(前枠開放)
(ヘ)1のとき:前面枠開放(遊技枠開放)
(ト)2のとき:スイッチ異常エラー(コネクタ抜け)
(チ)3のとき:なし
次いで、遊技機エラー監視テーブル2で定義した種類のエラーチェックを行い(ステップS236)、入賞口スイッチ/エラー監視処理を終了してタイマ割込処理にリターンする。
一方、ステップS234でエラースキャンカウンタ=「3」と判定した場合には、遊技機エラー監視テーブル2には監視対象となるエラーがないので、ステップS235、236を経由せずに、タイマ割込処理にリターンする。
【0178】
〔不正&入賞監視処理〕
次に、上述の入賞口スイッチ/エラー監視処理における不正&入賞監視処理(ステップS222、ステップS226、ステップS228)を図21により説明する。
入賞監視処理は、下大入賞口(変動入賞装置27)の2つの下カウントスイッチ124の各々、上大入賞口(第2変動入賞装置33)の上カウントスイッチ125及び普電内の第2始動口スイッチ121に対して行なわれる処理である。大入賞口(変動入賞装置27、33)や普電(普通変動入賞装置26)については、無理やり開閉部材を開いて遊技球を入れて賞球を払い出させる不正が行なわれ易いため、入賞の検出の他に不正の監視をする。
ここで、入賞口スイッチ/エラー監視処理の中の不正&入賞監視処理を説明するに当たり、準備される不正監視テーブルに定義されている情報は、以下の通りである。
・入力があるかを判定するデータ(監視スイッチビット)
・不正監視情報の下位アドレス
・不正入賞数領域の下位アドレス
・不正入賞エラー報知コマンド
・不正入賞数上限値(不正発生判定個数)
・入賞口スイッチテーブルのアドレス
・報知タイマ更新情報(許可/更新)
不正&入賞監視処理においては、まず、エラー監視対象の入賞口スイッチの不正監視期間フラグをチェックし(ステップS241)、不正監視期間中かどうかを判定する(ステップS242)。不正監視期間とは、エラー監視対象の入賞口スイッチが下カウントスイッチ124である場合は変動入賞装置27を開放する特別遊技状態中以外の期間であり、エラー監視対象の入賞口スイッチが上カウントスイッチ125である場合は第2変動入賞装置33を開放する特別遊技状態中以外の期間である。また、エラー監視対象の入賞口スイッチが第2始動口スイッチ121である場合は普図の当りに基づき普通変動入賞装置26の開放制御を実行している状態以外の期間である。
【0179】
そして、不正監視期間である場合(ステップS242;YES)は、対象の入賞口スイッチに入力があるかを判定する(ステップS243)。対象の入賞口スイッチに入力がない場合(ステップS243;NO)は、対象の報知タイマ更新情報をロードする(ステップS252)。また、対象の入賞口スイッチに入力がある場合(ステップS243;YES)は、対象の不正入賞数を+1更新し(ステップS244)、加算後の不正入賞数が監視対象の不正発生判定個数(例えば、5個)を超えたかを判定する(ステップS245)。
【0180】
判定個数を5個としているのは、例えば、開状態にある大入賞口が閉状態に変換した際に遊技球が大入賞口の扉部材に挟まり、その遊技球がカウントスイッチの有効期間を過ぎて入賞した場合や信号にノイズがのった場合に、それを不正と判断しないようにするためであり、不正でないのに簡単にエラーと判定しないためである。
そして、判定個数を超えていない(ステップS245;NO)と判定すると、ステップS250へジャンプし、対象の入賞口スイッチの入賞監視テーブルを準備する。また、判定個数を超えた場合(ステップS245;YES)は、不正入賞数を不正発生判定個数に留め(ステップS246)、対象の不正入賞報知タイマ領域に初期値をセーブする(ステップS247)。次に、対象の不正発生コマンドを準備し(ステップS248)、不正フラグとして不正入賞発生フラグを準備して(ステップS249)、準備した不正フラグを対象の不正フラグ領域の値と比較する(ステップS260)。
【0181】
一方、不正監視期間でない場合(ステップS242;NO)は、対象の入賞口スイッチの入賞監視テーブルを準備し(ステップS250)、賞球の設定を行う入賞数カウンタ更新処理(ステップS251)を行う。そして、対象の報知タイマ更新情報をロードし(ステップS252)、報知タイマの更新許可の有無を判定する(ステップS253)。そして、報知タイマの更新が許可されない場合(ステップS253;NO)は、不正&入賞監視処理を終了する。また、報知タイマの更新が許可される場合(ステップS253;YES)は、対象の報知タイマが0でなければ−1更新する(ステップS254)。なお、報知タイマの最小値は0に設定されている。
報知タイマの更新は、エラー監視対象の入賞口スイッチが一方の下カウントスイッチ124である場合は許可され、エラー監視対象の入賞口スイッチが他方の下カウントスイッチ124である場合は許可されない。これにより、変動入賞装置27についての不正報知について、報知タイマの更新が倍の頻度で行われてしまい、規定時間(例えば60000ms)の半分でタイムアップしてしまうことを防止している。
すなわち、下大入賞口(変動入賞装置27)に対してエラー監視を2つの下カウントスイッチ124で行っているため、双方のスイッチでタイマ更新すると、倍のタイマ更新が行われることとなり、結果的に規定時間の半分で不正タイマがタイムアップしてしまうことから、あとから監視処理を行う一方の下カウントスイッチ124のタイミングでのみ、タイマ更新をするようにしているものである。
なお、エラー監視対象の入賞口スイッチが上カウントスイッチ125である場合や普電内の第2始動口スイッチ121である場合は報知タイマの更新は常に許可される。
【0182】
その後、報知タイマの値が0であるかを判定し(ステップS255)、値が0でない場合(ステップS255;NO)、すなわちタイムアップしていない場合は、不正&入賞監視処理を終了する。また、値が0である場合(ステップS255;YES)、すなわちタイムアップした又はすでにタイムアップしていた場合は、対象の不正解除コマンドを準備し(ステップS256)、不正フラグとして不正入賞解除フラグを準備する(ステップS25)。そして、報知タイマの値が0になった瞬間であるかを判定する(ステップS258)。
【0183】
報知タイマの値が0になった瞬間である場合(ステップS258;YES)、すなわち今回の不正&入賞監視処理で報知タイマの値が0になった場合は、対象の不正入賞数をクリアし(ステップS259)、準備した不正フラグを対象の不正フラグ領域の値と比較する(ステップS260)。また、報知タイマの値が0になった瞬間でない場合(ステップS258;NO)、すなわち前回以前の不正&入賞監視処理で報知タイマの値が0になった場合は、準備した不正フラグを対象の不正フラグ領域の値と比較する(ステップS260)。
【0184】
そして、準備した不正フラグと対象の不正フラグ領域の値が一致した場合(ステップS60;YES)は、不正&入賞監視処理を終了する。また、準備した不正フラグと対象の不正フラグ領域の値が一致しない場合(ステップS260;NO)は、準備した不正フラグを対象の不正フラグ領域にセーブし(ステップS261)、コマンド設定処理を行い(ステップS262)、不正&入賞監視処理を終了する。
以上の処理により、エラーの発生に伴いエラー報知コマンドが演出制御装置300に送信され、エラーの解除に伴い不正入賞エラー解除コマンドが演出制御装置300に送信されて、エラー報知の開始、終了が設定されることとなる。
【0185】
〔入賞数カウンタ更新処理〕
次に、上述の入賞口スイッチ/エラー監視処理における入賞数カウンタ更新処理(ステップS230)及び不正&入賞監視処理における入賞数カウンタ更新処理(ステップS251)を図22により説明する。
入力数カウンタ更新処理においては、まず、上述の入賞口スイッチ/エラー監視処理にて取得した入賞口監視テーブルから監視する入賞口スイッチの個数を取得する(ステップS281)。
ここで、入賞口スイッチ/エラー監視処理で準備された入賞口監視テーブルのうちの入賞テーブルに定義されている情報は、以下の通りである。
・繰り返し回数
・入力があるかを判定するデータ(監視スイッチビット)
・入賞数カウンタ領域の下位アドレス
次いで、監視対象の入賞口スイッチから検出信号の入力(正確には入力の変化)があるかチェックする(ステップS272)。ここで、入力がない(S272;NO)と判定するとステップS277へジャンプし、入力がある(S272;YES)と判定すると、次のステップS273で、対象の入賞数カウンタ領域の値をロードする。
【0186】
次のステップS274では、ロードした入賞数カウンタを更新(+1)し、続くステップS275でオーバーフローするかチェックする。そして、カウンタオーバーフローが発生していない(ステップS275;NO)と判定すると、ステップS276へ進んで更新後の値を入賞数カウンタ領域にセーブしてからステップS277へ進む。
一方、ステップS275でカウンタオーバーフローが発生している(S275;YES)と判定すると、ステップS276をスキップしてステップS277へジャンプする。設けられた入賞数カウンタ領域のサイズによって、最大記憶数(例えば、1バイトサイズなら255個、2バイトサイズなら65535個)が決まるので、それを超えると値が「0」に戻ってしまい、支払うべき大量の賞球数の情報を失ってしまうことになる。それを回避するためにステップS274では、いきなり領域の内容を更新せず、領域の外で(+1)して「0」になってしまわないかを確認した上で更新を行うようにしている。
ステップS277では、全部のスイッチの監視処理が終了したか判定して、終了している場合(ステップS277;YES)には当該入力数カウンタ更新処理を終了し、終了していない場合(ステップS277;NO)には、ステップS272へ戻り上記処理を繰り返す。以上の処理により、入賞に応じた賞球が設定されることとなる。
【0187】
〔コマンド設定処理〕
次に、上述の不正&入賞監視処理におけるコマンド設定処理(ステップS262)を図23により説明する。なお、このコマンド設定処理は、タイマ割込み処理中に実行される他の処理におけるコマンド設定処理に共通する処理である。
このコマンド設定処理では、まず、コマンドデータ(MODE(上位バイト))をシリアル送信バッファに書き込み(ステップS281)、シリアル送信バッファステータスを読み込んで(ステップS282)、コマンドの送信中であるかを判定する(ステップS283)。
【0188】
コマンドの送信中である場合(ステップS283;YES)は、コマンドデータ(ACTION(下位バイト))をシリアル送信バッファに書き込む(ステップS286)。また、コマンドの送信中でない場合(ステップS283;NO)は、回路の異常が考えられるため送信回路を初期化し(ステップS284)、コマンドデータ(MODE(上位バイト))をシリアル送信バッファに再書き込み(ステップS285)した後、コマンドデータ(ACTION(下位バイト))をシリアル送信バッファに書き込む(ステップS286)。
【0189】
そして、シリアル送信バッファステータスを読み込んで(ステップS287)、コマンドの送信中であるかを判定する(ステップS288)。コマンドの送信中である場合(ステップS288;YES)は、コマンド設定処理を終了する。また、コマンドの送信中でない場合(ステップS288;NO)は、回路の異常が考えられるため送信回路を初期化し(ステップS289)、コマンドデータ(ACTION(下位バイト))をシリアル送信バッファに再書き込みして(ステップS290)、コマンド設定処理を終了する。
【0190】
このように、演出制御装置300に対してはシリアル通信でコマンドを送信するようにしたことで、遊技制御装置100の負担を軽減できるとともに、コマンドの解析を困難にすることができる。また、コマンドの送出タイミングが早まるとともに、データ線の本数を減らすことができる。さらに、演出制御装置300においてもストローブ内でのコマンドの取り込みが必要なくなり、負担を軽減することができる。なお、払出制御装置200へもシリアル通信によりコマンドを送信するようにしても良い。
【0191】
〔エラーチェック処理〕
次に、上述の入賞口スイッチ/エラー監視処理におけるエラーチェック処理(ステップS233、ステップS236)を図24により説明する。
エラーチェック処理においては、まず、エラーを監視すべき複数のスイッチ並びに信号のうちいずれのスイッチ又は信号を今回の監視の対象とするかを順番に指定するためのエラースキャンカウンタに対応するエラー監視テーブルを取得する(ステップS301)。
準備された遊技機エラー監視テーブル上に定義されている情報としては、以下のものがある。
(イ)スイッチの状態を判定するデータ
(ロ)エラー報知コマンド
(ハ)エラー報知終了コマンド
(ニ)エラー発生監視タイマ比較値
(ホ)エラー解除監視タイマ比較値
(ヘ)スイッチ状態領域のアドレス
(ト)エラー監視タイマ領域のアドレス
(チ)エラーフラグ領域のアドレス
【0192】
次いで、今回取得した対象のスイッチの状態をチェックし、監視対象であるスイッチ(信号を含む)がオンであるか、すなわちエラーを示す状態であるかを判定する(ステップS302)。
そして、スイッチがオンでない場合(ステップS302:NO)は、エラーフラグとしてエラー解除フラグを準備し(ステップS303)し、対象のエラー報知終了コマンドを準備する(ステップS304)。その後、対象のエラー解除監視タイマ比較値を取得して(ステップS305)、対象のスイッチ制御領域の値と今回のスイッチの状態を比較する(ステップS309)。
一方、スイッチがオンである場合(ステップS302:YES)は、エラー発生となる状態である可能性があるので、エラーフラグとしてエラー発生フラグを準備する(ステップS306)。例えば、遊技機エラー監視テーブルで定義するエラーの1つとして、シュート球切れの場合であれば、貯留タンク51に遊技球を供給するシュートに遊技球が無いことがシュート球切れスイッチ216で検出されてオンになると、ステップS302がYESとなる。YESであればステップS306で、エラー発生フラグを準備することになる。
次いで、対象のエラー報知コマンドを準備する(ステップS307)。その後、対象のエラー発生監視タイマ比較値を取得して(ステップS308)、対象のスイッチ制御領域の値と今回のスイッチの状態を比較する(ステップS309)。
【0193】
対象のスイッチ制御領域の値と今回のスイッチの状態が一致した場合(ステップS309;YES)、すなわちスイッチの状態が変化していない場合は、エラーの処置が必要かどうかのタイマを判断するために対象のエラー監視タイマを+1更新して(ステップS312)、対象のエラー監視タイマの値が監視タイマ比較値(エラーへの処置が必要と判断する基準値)に達したかを判定する(ステップS313)。また、対象のスイッチ制御領域の値と今回のスイッチの状態が一致しない場合(ステップS309;NO)、すなわちスイッチの状態が変化した場合は、まだエラーの処置まで必要ないと判断して対象のスイッチ制御領域に今回のスイッチ状態をセーブする(ステップS310)、そして、対象のエラー監視タイマをクリアし(ステップS311)、対象のエラー監視タイマを+1更新して(ステップS312)、対象のエラー監視タイマの値が監視タイマ比較値に達したかを判定する(ステップS313)。
【0194】
対象のエラー監視タイマの値が監視タイマ比較値に達していない場合(ステップS313;NO)は、エラーチェック処理を終了する。また、対象のエラー監視タイマの値が監視タイマ比較値に達した場合(ステップS313:YES)は、エラー監視タイマを−1更新して比較値−1の値に留め(ステップS314)、準備したエラーフラグを対象のエラーフラグ領域の値と比較する(ステップS315)。
ここで、ステップS313で対象のエラー監視タイマが監視タイマ比較値に達したと判定したときは、エラー発生または解除の状態が確定したと見なされることになる。しかし、既にエラーが発生している状態のときにエラー発生が確定するか、またはエラー発生中でない状態のときにエラー解除が確定するという状況もあり得るので、ステップS314の処理を経て、ステップS315では、準備したエラーフラグを対象のエラーフラグ領域の値と比較することにより、今回確定したエラー状態は現エラーフラグの状態と同じかどうかをチェックするようにしている。
【0195】
そして、準備したエラーフラグと対象のエラーフラグ領域の値とが一致する場合(ステップS315;YES)は、エラーの状況が変化していないことになるので、処置の必要はないと判断し、エラーチェック処理を終了する。また、設定したエラーフラグと対象のエラーフラグ領域の値とが一致しない場合(エラーフラグが同じでなければ)(ステップS315;NO)は、新たなエラー状態に変化したことになるので、準備したエラーフラグを対象のエラーフラグ領域にセーブして(ステップS316)、ステップS317に進む。すなわち、対象のエラーフラグ領域の値を今回確定したエラー状態のものに変更して、ステップS317に進む。ステップS317では、コマンド設定処理を行い、今回確定したエラー状態に対応するコマンドを設定する。これにより、今回のエラー状態に対応する処置が行なわれることとなり、例えばシュート球切れであれば、それを知らせるエラー表示が報知されたり、報知解除されたりする。ステップS317を経ると、エラーチェック処理を終了する。
このようにして、エラーが発生すれば、該当するエラーフラグを立てて処置のコマンドを準備し、エラーが解消すれば該当するエラーフラグを消して解消のコマンドの設定が行なわれる。特に、このエラーチェック処理では、エラーの発生だけを監視しているものではなく、解除も合わせて監視するようにして、処理を共通にしている。
なお、このようなエラーチェック処理は、例えばガラス枠開放、前面枠開放などのエラーについても同様である。
【0196】
〔特図ゲーム処理〕
次に、前記タイマ割込処理における特図ゲーム処理(ステップS78)を図25により説明する。
特図ゲーム処理では、第1始動口スイッチ120及び第2始動口スイッチ121の入力の監視と、特図変動表示ゲームに関する処理全体の制御、特図の表示の設定を行う。
特図ゲーム処理では、まず、ステップS321で第1始動口スイッチ120及び第2始動口スイッチ121の入賞を監視する始動口スイッチ監視処理を行う。
始動口スイッチ監視処理では、始動入賞口25、第2始動入賞口をなす普通変動入賞装置26に遊技球の入賞があると、各種乱数(大当り乱数など)の抽出を行い、当該入賞に基づく特図変動表示ゲームの開始前の段階で入賞に基づく遊技結果を事前に判定する遊技結果事前判定を行う。なお、始動口スイッチ監視処理(ステップS321)の詳細については後述する。
次いでステップS322で大入賞口スイッチ監視処理を行う。これは、変動入賞装置27内に設けられた下カウントスイッチ124や第2変動入賞装置33内に設けられた上カウントスイッチ125での遊技球の検出を監視する処理を行うものである。
【0197】
次いで、ステップS323では、特図ゲーム処理タイマが0でなければ−1更新する。なお、特図ゲーム処理タイマの最小値は0に設定されている。そして、特図ゲーム処理タイマの値が0であるかを判定する(ステップS324)。特図ゲーム処理タイマの値が0である場合(ステップS324;YES)、すなわちタイムアップした又はすでにタイムアップしていた場合は、特図ゲーム処理番号に対応する処理に分岐させるために参照する特図ゲームシーケンス分岐テーブルをレジスタに設定し(ステップS325)、当該テーブルを用いて特図ゲーム処理番号に対応する処理の分岐先アドレスを取得する(ステップS326)。そして、分岐処理終了後のリターンアドレスをスタック領域に退避させ(ステップS327)、ゲーム処理番号に応じてゲーム分岐処理(ステップS328)を行う。
特図ゲーム処理タイマは、後述する処理番号による分岐後の各処理(ステップS329〜S335:処理番号=0乃至処理番号=6に相当)において、それぞれ所定の値にタイマ値が設定されるものであり、この特図ゲーム処理タイマがタイムアップしたときにステップS329以降を実行すべきタイミングになるように設定される。これにより、ステップS323を実行した時点で、ステップS325以降を実行すべきタイミングになっていると、ステップS324の判定結果が肯定的になり、ステップS325以降(ステップS336〜S339含む)が実行される。そして、ステップS323を実行した時点で、ステップS325〜S335を実行すべきタイミングでない場合には、ステップS324の判定結果が否定的になり、ステップS336〜S339のみが実行される構成となっている。
【0198】
ステップS328における処理番号における分岐では、処理番号0でステップS329(特図普段処理)へ、処理番号1でステップS330(特図変動中処理)へ、処理番号2でステップS331(特図表示中処理)へ、処理番号3でステップS332(ファンファーレ/インターバル中処理)へ、処理番号4でステップS333(大入賞口開放中処理)へ、処理番号5でステップS334(大入賞口残存球処理)へ、処理番号6でステップS335(大当り終了処理)へ進む。なお、客待ち状態(デモ中)は、処理番号0である。
【0199】
処理番号における分岐の具体的内容は、以下の通りである。
ステップS329(特図普段処理)では、特図保留数(特図変動表示ゲーム未実施で保留になっている特図始動記憶の数)がゼロで特図変動表示ゲームを実行中でないときには、客待ち状態の表示を表示装置41で行うための処理を行う。また、この特図普段処理では、次の特図変動表示ゲームを開始するための処理(特図変動開始処理)を行う。この特図変動開始処理では、特図1及び特図2の始動記憶を監視し、何れかの特図始動記憶があれば、対応する変動表示(第1又は第2変動表示)を開始するための設定(演出制御装置300に送信する変動パターンコマンドの設定など)を実行し、処理番号を1とした後にリターンする。特図保留数がゼロで次の特図変動表示ゲームを実行しない場合には、そのまま(処理番号は0のまま)リターンする。
【0200】
次に、ステップS330(特図変動中処理)では、特図変動開始処理で設定された変動時間が経過するまで、特図を変動表示させるための処理が行われる。そして、前記変動時間が経過すると、特図の図柄を停止させるコマンド(図柄停止コマンド)を演出制御装置300に送信する処理を実行した後、処理番号を2としてリターンする。
また、ステップS331(特図表示中処理)では、特図の変動表示結果を一定時間(1秒〜2秒)表示するための処理を行う。また、特図変動表示ゲームの遊技結果が大当りであれば、大当りの種類に応じたファンファーレコマンドの設定や、各大当りの大入賞口開放パターンに応じたファンファーレ時間の設定や、ファンファーレ/インターバル中処理を行うために必要な情報の設定等を行う。そして、大当りなら処理番号を3とし、はずれなら処理番号を0としてリターンする。
【0201】
次に、ステップS332(ファンファーレ/インターバル中処理)では、大当り直後にはファンファーレ音等をスピーカ12a等から出力するファンファーレ処理を実行し、大当りのインターバル期間にはインターバル期間の表示等を実現するためのインターバル処理を実行し、変動入賞装置27の大入賞口開放を開始するタイミングで処理番号を4にする。また、ここでは大入賞口の開放時間の設定や開放回数の更新、大入賞口開放中処理を行うために必要な情報の設定等を行う。
次に、ステップS333(大入賞口開放中処理)は、変動入賞装置27の大入賞口27aや第2変動入賞装置33を開放している間の処理である。また、ここでは大当りラウンドが最終ラウンドでなければインターバルコマンドを設定する一方で最終ラウンドであればエンディングコマンドを設定する処理や、大入賞口残存球処理を行うために必要な情報の設定等を行う。大入賞口開放が終了すると、処理番号を5にする。
【0202】
次に、ステップS334(大入賞口残存球処理)では、大入賞口内にある残存球が排出されるための時間を設定する処理や、大当りラウンドが最終ラウンドであれば大当り終了処理を行うために必要な情報の設定等を行う。具体的には、例えば大入賞口開放終了の間際に変動入賞装置27の大入賞口27a(第2変動入賞装置33大入賞口についても同様)に入った遊技球を確実にカウントするために一定時間待機する処理を行い、この一定時間が経過した後に、大当りのラウンドが残っているときには処理番号を3にし、大当りのラウンドが残っていないときには処理番号を6としてリターンする。
次に、ステップS335(大当り終了処理)では、大当たり終了後に特図普段処理S329を実行するための処理を行い、処理番号を0に戻してリターンする。
【0203】
次に、処理番号に応じた上記何れかの処理が終了すると、ステップS336に進み、特図1の一括表示装置35での表示(本特図1の表示)を制御するためのテーブル(特図1変動制御テーブル)を準備し、次のステップS337では、この本特図1の変動表示のための制御処理(図柄変動制御処理)を行う。
次いでステップS338に進み、特図2の一括表示装置35での表示(本特図2の表示)を制御するためのテーブル(特図2変動制御テーブル)を準備し、次のステップS339では、この本特図2の変動表示のための制御処理(図柄変動制御処理)を行い、その後リターンする。
【0204】
〔始動口スイッチ監視処理〕
次に、上述の特図ゲーム処理における始動口スイッチ監視処理(ステップS321)を図26により説明する。
始動口スイッチ監視処理では、先ず、始動入賞口25(第1始動口)による保留の情報を設定するテーブルを準備した後(ステップS351)、特図始動口スイッチ共通処理(ステップS352)を行う。なお、ステップS352における特図始動口スイッチ共通処理の詳細については、ステップS356における特図始動口スイッチ共通処理とともに後述する。
【0205】
次に、普通電動役物(普通変動入賞装置26)が作動中である、即ち、普通変動入賞装置26が作動して遊技球の入賞が可能な開状態となっているか否かをチェックして(ステップS353)、普通電動役物が作動中である(ステップS353;YES)と判定すると、処理をステップS355に移行して、それ以降の処理を行う。一方、ステップS353にて、普通電動役物が作動中でない(ステップS353;NO)と判定すると、普電不正発生中であるかを判定する(ステップS354)。普電不正発生中であるかの判定では、普通変動入賞装置26への不正入賞数が不正発生判定個数(例えば5個)以上である場合に不正発生中であると判定する。
普通変動入賞装置26は、閉状態では遊技球が入賞不可能であり、開状態でのみ遊技球が入賞可能である。よって、閉状態で遊技球が入賞した場合は何らかの異常や不正が発生した場合であり、このような閉状態で入賞した遊技球があった場合はその数を不正入賞数として計数する。そして、このように計数された不正入賞数が所定の不正発生判定個数(上限値)以上である場合に不正発生中と判定する。
【0206】
ステップS354にて、普電不正発生中でない(ステップS354;NO)と判定すると、第2始動口(普通変動入賞装置26)による保留の情報を設定するテーブルを準備した後(ステップS356)、特図始動口スイッチ共通処理(ステップS366)を行って、始動口スイッチ監視処理を終了する。
また、ステップS354にて、普電不正発生中である(ステップS354;YES)と判定された場合は、始動口スイッチ監視処理を終了する。即ち、第2始動記憶をそれ以上発生させないようにする。
【0207】
〔特図始動口スイッチ共通処理〕
次に、上述の始動口スイッチ監視処理における特図始動口スイッチ共通処理(ステップS352、S356)を図27により説明する。
特図始動口スイッチ共通処理は、第1始動口スイッチ120や第2始動口スイッチ121の入力があった場合に、各々の入力について共通して行われる処理である。
特図始動口スイッチ共通処理では、まず、第1始動口スイッチ120及び第2始動口スイッチ121のうち、監視対象の始動口スイッチ(例えば、第1始動口スイッチ120等)に入力があるか否かをチェックして(ステップS361)、監視対象の始動口スイッチに入力がない(ステップS361;NO)と判定すると、特図始動口スイッチ共通処理を終了する。一方、ステップS361にて、監視対象の始動口スイッチに入力がある(ステップS361;YES)と判定すると、対象の乱数ラッチレジスタにラッチデータがあるかを判定する(ステップS362)。
【0208】
対象の乱数ラッチレジスタにラッチデータがない場合(ステップS362;NO)、すなわち乱数が抽出されていない場合は、特図始動口スイッチ共通処理を終了する。また、対象の乱数ラッチレジスタにラッチデータがある場合(ステップS362;YES)は、監視対象の始動口スイッチの始動口入賞フラグをセーブした後(ステップS363)、当該監視対象のハード乱数ラッチレジスタに抽出された大当り乱数をロードし、準備する(ステップS364)。
【0209】
続けて、第1始動口スイッチ120及び第2始動口スイッチ121のうち、監視対象の始動口スイッチ(例えば、第1始動口スイッチ120等)への入賞の回数に関する情報がパチンコ機1の外部の管理装置140に対して出力する回数(始動口信号出力回数)(あと何回出力しなければならないという回数)をロードする(ステップS365)。そして、ロードした値(始動口信号出力回数)を更新(+1)して(ステップS366)、出力回数がオーバーフローするかを判定する(ステップS367)。出力回数がオーバーフローしない場合(ステップS367;NO)は、更新後の値をRWMの始動口信号出力回数領域にセーブして(ステップS368)、処理をステップS369に移行する。一方、出力回数がオーバーフローする場合(ステップS367;YES)は、ステップS368をジャンプしてステップS369に移行する。
そして、ステップS369にて、第1始動口スイッチ120及び第2始動口スイッチ121のうち、監視対象の始動口スイッチ(例えば、第1始動口スイッチ120等)に対応する更新対象の特図保留(始動記憶)数が上限値未満か否かを判定する処理を行う。
【0210】
ステップS369にて、特図保留数が上限値未満である(ステップS369;YES)と判定すると、更新対象の特図保留数(例えば、特図1保留数等)を更新(+1)する処理(ステップS372)を行った後、監視対象の始動口スイッチ及び特図保留数に対応する飾り特図保留数コマンドを準備して(ステップS373)、コマンド設定処理(ステップS374)を行う。
続けて、監視対象の始動口スイッチに対応する特図保留数に対応する乱数格納領域のアドレスを算出し(ステップS375)、大当り乱数をRWMの大当り乱数格納領域にセーブする(ステップS376)。次に、監視対象の始動口スイッチの大当り図柄乱数を抽出して準備し(ステップS377)、RWMの大当り図柄乱数格納領域にセーブする(ステップS378)。さらに、変動パターン乱数1から3を抽出して各乱数に対応するRWMの変動パターン乱数格納領域にセーブする(ステップS379)。そして、特図保留情報判定処理(ステップS380)を行って、特図始動口スイッチ共通処理を終了する。
【0211】
ここで、遊技制御装置100(RAM101C)は、始動入賞口25や普通変動入賞装置26の始動入賞領域への遊技球の流入に基づき、所定の乱数を抽出し前記変動表示ゲームの実行権利となる始動記憶として所定数を上限に記憶する始動入賞記憶手段をなす。また、始動入賞記憶手段(遊技制御装置100)は、第1始動入賞口(始動入賞口25)への遊技球の入賞に基づき抽出した各種の乱数値を、所定数を上限に第1始動記憶として記憶し、第2始動入賞口(普通変動入賞装置26)への遊技球の入賞に基づき抽出した各種の乱数値を、所定数を上限に第2始動記憶として記憶する。
【0212】
一方、ステップS369にて、特図保留数が上限値未満でない(ステップS369;NO)と判定すると、飾り特図保留数コマンド(保留オーバーフローコマンド)を準備し(ステップS370)、コマンド設定処理(ステップS371)を行って、特図始動口スイッチ共通処理を終了する。
【0213】
〔特図保留情報判定処理〕
次に、上述の始動口スイッチ共通処理における特図保留情報判定処理(ステップS380)を図28により説明する。
特図保留情報判定処理は、対応する始動記憶に基づく特図変動表示ゲームの開始タイミングより前に当該始動記憶に対応した結果関連情報の判定を行う先読み処理である。
特図保留情報判定処理では、まず、先読み演出を実行してよい条件を満たしているかを判定し(ステップS391)、満たしていない場合(ステップS391;NO)は、特図保留情報判定処理を終了する。また、満たしている場合(ステップS391;YES)は、以下の先読み演出に関する処理を行う。
ここで、先読み演出を実行してよい条件としては、以下の通りである。
・特図1:普通変動入賞装置26がサポート中(普電サポート中)以外、かつ大当り中以外
・特図2:条件なし(常時実行してよい)
このような条件を満たすときは、当該始動記憶に対応した結果関連情報の判定を行う先読み処理を行うことになる。
【0214】
先読み演出を実行してよい条件を満たしている場合(ステップS391;YES)に行われる先読み演出に関する処理では、まず、大当り乱数値が大当り判定値と一致するか否かにより大当りであるか否かを判定する大当り判定処理(ステップS392)を行う。大当り判定処理は、始動入賞のタイミングで抽出した乱数が大当りの範囲内にあるかどうかで大当りと判定するもので、大当り判定のときは大当りフラグ領域に大当り情報がセーブされることになる。
そして、判定結果が大当りである場合(ステップS393;YES)は、対象の始動口スイッチに対応する大当り図柄乱数チェックテーブルを設定する(ステップS394)。
ここで、大当り図柄乱数チェックテーブル上に定義されている情報には、以下のものがある。
・乱数の判定値(振り分け率を表す)
・判定値に対応する停止図柄パターン
次いで、大当り図柄乱数をチェックして対応する大当り停止図柄パターンを取得して(ステップS395)、停止図柄パターンを先読み停止図柄パターン領域にセーブする(ステップS396)。一方、判定結果が大当りでない場合(ステップS393;NO)は、はずれ停止図柄パターンを設定し(ステップS396)、停止図柄パターンを先読み停止図柄パターン領域にセーブする(ステップS397)。
【0215】
その後、対象の始動口スイッチ及び停止図柄パターンに対応する先読み図柄コマンドを準備し(ステップS398)、コマンド設定処理を行う(ステップS399)。次に、変動パターンを設定するためのパラメータである特図情報を設定する特図情報設定処理(ステップS400)を行い、対象の始動口スイッチに対応する後半変動パターン設定情報テーブルを準備し(ステップS401)、特図変動表示ゲームの変動態様を設定する変動パターン設定処理を行う(ステップS402)。
【0216】
そして、特図変動表示ゲームの変動態様における前半変動パターンを示す前半変動番号及び後半変動パターンを示す後半変動番号に対応する先読み変動パターンコマンドを準備して(ステップS403)、コマンド設定処理を行い(ステップS404)、特図保留情報判定処理を終了する。なお、ステップS400における特図情報設定処理、ステップS402における変動パターン設定処理は、特図普段処理で特図変動表示ゲームの開始時に実行される処理と同様である。
【0217】
以上の処理により、先読み対象の始動記憶に基づく特図変動表示ゲームの結果を含む先読み図柄コマンドと、当該始動記憶に基づく特図変動表示ゲームでの変動パターンの情報を含む先読み変動パターンコマンドが準備され、演出制御装置300に送信される。これにより、始動記憶に対応した結果関連情報(大当りか否かや変動パターンの種類)の判定結果(先読み結果)を、対応する始動記憶に基づく特図変動表示ゲームの開始タイミングより前に演出制御装置300に対して知らせることができ、特に表示装置41に表示される飾り特図始動記憶表示を変化させるなどして、その特図変動表示ゲームの開始タイミングより前に遊技者に結果関連情報を報知することが可能となる。
【0218】
すなわち、遊技制御装置100が、始動入賞記憶手段(遊技制御装置100)に始動記憶として記憶される乱数を、当該始動記憶に基づく変動表示ゲームの実行前に判定する(例えば特別結果となるか否か等を判定)事前判定手段をなす。なお、始動記憶に対応して記憶された乱数値を事前に判定する時期は、当該始動記憶が発生した始動入賞時だけではなく、当該始動記憶に基づく変動表示ゲームが行われる前であればいつでもよい。
【0219】
〔大入賞口スイッチ監視処理〕
次に、上述の特図ゲーム処理における大入賞口スイッチ監視処理(ステップS322)を図29により説明する。
大入賞口スイッチ監視処理では、まず、大入賞口(変動入賞装置27又は第2変動入賞装置33)が開放中であるか、すなわち特別遊技状態中かを判定する(ステップS411)。大入賞口が開放中でない場合(ステップS411;NO)は、大入賞口スイッチ監視処理を終了する。
一方、大入賞口が開放中である場合(ステップS411;YES)は、今回の大入賞口スイッチ監視処理において加算される大入賞口への入賞数をカウントするための入賞カウンタに0をセットする(ステップS412)。入賞カウンタは、大入賞口の一のラウンドの開放で入った球を数え、後述のステップS429の処理で大入賞口カウント数に加算するために設けられたカウンタである。
次いで、下大入賞口(変動入賞装置27)が開放中であるか、すなわち変動入賞装置27を開放する特別遊技状態中かを判定する(ステップS413)。
【0220】
下大入賞口が開放中である場合(ステップS413;YES)は、一のラウンドの終了時に行われる大入賞口残存球処理中であるかを判定する(ステップS414)。これは、残存球処理中における下大入賞口(変動入賞装置27)への入賞については監視を行わないようにするために、大入賞口残存球処理中であるかを判定するものである。
そして、大入賞口残存球処理中である場合は(ステップS414;YES)は、大入賞口スイッチ監視処理を終了する。また、大入賞口残存球処理中でない場合は(ステップS414;NO)は、下大入賞口スイッチ1(一方の下カウントスイッチ124)に入力があるかを判定する(ステップS415)。
【0221】
下大入賞口スイッチ1に入力がない場合(ステップS415;NO)は、下大入賞口スイッチ2(他方の下カウントスイッチ124)に入力があるかを判定する(ステップS419)。また、下大入賞口スイッチ1に入力がある場合(ステップS415;YES)は、入賞カウンタを+1更新し(ステップS416)、下大入賞口カウントコマンドを準備する(ステップS417)。そして、コマンド設定処理(ステップS418)を行い、下大入賞口スイッチ2(他方の下カウントスイッチ124)に入力があるかを判定する(ステップS419)。
【0222】
下大入賞口スイッチ2に入力がない場合(ステップS419;NO)は、入賞カウンタの値が0であるかを判定する(ステップS428)。また、下大入賞口スイッチ2に入力がある場合(ステップS419;YES)は、入賞カウンタを+1更新し(ステップS420)、下大入賞口カウントコマンドを準備する(ステップS421)。そして、コマンド設定処理(ステップS422)を行い、入賞カウンタの値が0であるかを判定する(ステップS428)。
【0223】
一方、下大入賞口が開放中でない場合(ステップS413;NO)、すなわち上大入賞口(第2変動入賞装置33)が開放中である(第2変動入賞装置33を開放する特別遊技状態中である)場合は、上大入賞口スイッチ(上カウントスイッチ125)に入力があるかを判定する(ステップS423)。上大入賞口スイッチに入力がない場合(ステップS423;NO)は、大入賞口スイッチ監視処理を終了する。また、上大入賞口スイッチに入力がある場合(ステップS423;YES)は、大入賞口残存球処理中であるかを判定する(ステップS424)。
【0224】
大入賞口残存球処理中でない場合(ステップS424;NO)は、入賞カウンタを+1更新し(ステップS425)、上大入賞口カウントコマンドを準備する(ステップS426)。また、大入賞口残存球処理中である場合(ステップS424;YES)はステップS425をジャyンプして、上大入賞口カウントコマンドを準備する(ステップS426)。その後、コマンド設定処理(ステップS427)を行い、入賞カウンタの値が0であるかを判定する(ステップS428)。上大入賞口の場合は、入賞による演出を行うために大入賞口残存球処理中であっても上大入賞口カウントコマンドを送信するようになっている。
【0225】
入賞カウンタの値が0であるかの判定(ステップS428)において、入賞カウンタの値が0である場合(ステップS428;YES)は、大入賞口スイッチ監視処理を終了する。
また、入賞カウンタの値が0でない場合(ステップS428;NO)は、入賞カウンタの値を大入賞口カウント数に加算する(ステップS429)。これは、上下各大入賞口への球の入賞時には入賞したことを示すコマンドを払出制御装置200へ送信するとともに入賞カウンタで計数(ステップS416、ステップS420、ステップS425)しておき、あとの処理になるこのステップS429にて実際の大入賞口カウント数に加算するようにしたものである。
次いで、大入賞口カウント数が上限値(一のラウンドで入賞可能な遊技球数:例えば10個)以上となったかを判定する(ステップS430)。
【0226】
大入賞口カウント数が上限値以上となっていない場合(ステップS430;NO)は、大入賞口スイッチ監視処理を終了する。また、大入賞口カウント数が上限値以上となった場合(ステップS430;YES)は、大入賞口カウント数を上限値に留め(ステップS431)、特図ゲーム処理タイマ領域を0クリアする(ステップS432)。そして、大当り中制御ポインタ上限値領域からポインタをロードし(ステップS433)、ロードしたポインタを大当り中制御ポインタ領域にセーブして(ステップS434)、大入賞口スイッチ監視処理を終了する。ステップS433、ステップS434の処理は、大入賞口カウント数が上限値以上になったことに基づき、大入賞口を閉じるための処理を行うものである。これにより、大入賞口が閉鎖されて一のラウンドが終了することとなる。
【0227】
〔図柄変動制御処理〕
次に、上述の特図ゲーム処理における図柄変動制御処理(ステップS337、S339)の詳細について図30により説明する。
図柄変動制御処理は、第1特図や第2特図等の特別図柄の変動の制御と特別図柄の表示データの設定を行う処理である。図柄変動制御処理では、まず、第1特図及び第2特図のうち、制御対象の特図(例えば、第1特図)に係る特図変動制御フラグが変動中であるかをチェックする(ステップS441)。
そして、当該特図変動中フラグが変動中である場合(ステップS442;YES)は、制御対象の特図(例えば、第1特図)に対応する図柄表示テーブル(変動用)を取得する(ステップS443)。
ここで、特図ゲーム処理にて準備された変動制御テーブル上に定義されている情報は、以下の通りである。
・変動制御領域の下位アドレス
・表示テーブル2(停止用)のポインタ
・表示テーブル1(変動用)のポインタ
次いで、第1特図及び第2特図のうち、制御対象の特図(例えば、第1特図)に係る点滅制御タイマを−1更新して(ステップS444)、当該タイマの値が0、すなわちタイムアップしたかを判定する(ステップS445)。
【0228】
点滅制御タイマの値が0でない場合(ステップS445;NO)は、対象の変動図柄番号領域の値に対応する表示データを取得する(ステップS448)。また、点滅制御タイマの値が0である場合(ステップS445;YES)は、点滅制御タイマ初期値を制御対象の点滅制御タイマ領域にセーブし(ステップS446)、第1特図及び第2特図のうち、制御対象の特図(例えば、第1特図)に係る変動図柄番号を+1更新して(ステップS447)、対象の変動図柄番号領域の値に対応する表示データを取得する(ステップS4448)。その後、取得した表示データを対象のセグメント領域にセーブして(ステップS449)、図柄変動制御処理を終了する。
【0229】
一方、特図変動中フラグが変動中でない場合(ステップS442;NO)は、制御対象の特図(例えば、第1特図)に対応する図柄表示テーブル(停止用)を取得する(ステップS450)。そして、対象の変動図柄番号領域の値に対応する表示データを取得し(ステップS451)、取得した表示データを対象のセグメント領域にセーブして(ステップS449)、図柄変動制御処理を終了する。これにより、一括表示装置35の中のLEDセグメントである特図1表示器及び特図2表示器のうち、制御対象となる特図表示器(例えば、特図1表示器)に図柄番号に対応した特図が表示されることとなる。
【0230】
〔特図普段処理〕
次に、上述の特図ゲーム処理における特図普段処理(ステップS329)の詳細について図31により説明する。
特図普段処理では、まず、第2特図保留数(第2始動記憶数)が0であるか否かをチェックする(ステップS461)。
図2保留数が0である(ステップS461;YES)と判定すると、特図1保留数(第1始動記憶数)が0であるかを判定する(ステップS466)。そして、特図1保留数が0である(ステップS466;YES)と判定すると、客待ちデモが開始済みであるかを判定し(ステップS471)、客待ちデモが開始済みでない場合(ステップS471;NO)は、客待ちデモフラグ領域に客待ちデモ中フラグをセーブする(ステップS472)。
【0231】
続けて、客待ちデモコマンドを準備して(ステップS473)、コマンド設定処理(ステップS474)を行い、特図普段処理移行設定処理1(ステップS475)を行って、特図普段処理を終了する。一方、ステップS471にて、客待ちデモが開始済みである場合(ステップS471;YES)は、特図普段処理移行設定処理1(ステップS475)を行って、特図普段処理を終了する。なお、特図普段処理移行設定処理1(ステップS475)の詳細は図32で後述する。
一方、ステップS461にて、特図2保留数が0でない場合(ステップS461;NO)は、−1更新後の特図2保留数に対応する飾り特図保留数コマンドを準備し(ステップS462)、コマンド設定処理(ステップS463)を行う。次に、特図2変動開始処理(ステップS464)を行い、特図2の特図変動中処理移行設定処理(ステップS465)を行って、特図普段処理を終了する。
また、ステップS466にて、特図1保留数が0でない場合(ステップS466;NO)は、−1更新後の特図1保留数に対応する飾り特図保留数コマンドを準備し(ステップS467)、コマンド設定処理(ステップS468)を行う。次に、特図1変動開始処理(ステップS469)を行い、特図1の特図変動中処理移行設定処理(ステップS470)を行って、特図普段処理を終了する。
なお、飾り特図保留数コマンドを準備する処理(ステップS467、S462)を行う時点では特図変動表示ゲームの開始に基づく保留数の減算は行われておらず、現在の特図1保留数又は特図2保留数から−1した特図1保留数又は特図2保留数に対応する保留数コマンドを準備している。実際に特図1保留数又は特図2保留数を−1更新する処理は特図1変動開始処理(ステップS469)又は特図2変動開始処理(ステップS464)における変動開始情報設定処理(図41参照)のステップS611で行われる。
【0232】
このように、特図2保留数のチェックを特図1保留数のチェックよりも先に行うことで、特図2保留数が0でない場合には特図2変動開始処理(ステップS464)が実行されることとなる。すなわち、第2特図変動表示ゲームが第1特図変動表示ゲームに優先して実行されることとなる。つまり、遊技制御装置100が、第2始動記憶手段(遊技制御装置100)に第2始動記憶がある場合には、当該第2始動記憶に基づく変動表示ゲームを、第1始動記憶に基づく変動表示ゲームよりも優先的に実行する優先制御手段をなす。
また、実施例1では図柄の変動開始時の遊技制御装置100から演出制御装置300にコマンドを送信する際の送信順序が保留数、停止図柄、変動パターンという順番になる。
【0233】
〔特図普段処理移行設定処理1〕
次に、上述の特図普段処理における特図普段処理移行設定処理1(ステップS475)の詳細について図32により説明する。
このルーチンが開始されると、まずステップS481で処理番号として「0」を設定(例えば、特図普段処理に移行するためのテーブルを準備して当該テーブルに特図普段処理に係る処理番号「0」を設定)し、ステップS482で特図ゲーム処理番号領域に処理番号をセーブする。
次いで、ステップS483で変動図柄判別フラグ領域をクリアし、ステップS484で下大入賞口不正監視期間フラグ領域に不正監視期間中フラグをセーブし、ステップS485で上大入賞口不正監視期間フラグ領域に不正監視期間中フラグをセーブする。これは、上下に大入賞口(変動入賞装置27、第2変動入賞装置33)があることから、各大入賞口に対応する不正監視期間フラグ領域にそれぞれ不正監視期間中フラグをセーブするものである。ステップS485を経ると、特図普段処理移行設定処理1を終了する。
これにより、特図普段処理に移行するための各種データ、例えば特図普段処理に係る処理番号「0」を設定し、各大入賞口不正監視期間を規定するそれぞれのフラグ(各大入賞口不正監視情報)を設定する処理が行われる。
【0234】
〔特図1変動開始処理1〕
次に、上述の特図普段処理における特図1変動開始処理1(ステップS469)の詳細について図33により説明する。
図1変動開始処理は、第1特図変動表示ゲームの開始時に行う処理であり、具体的には、図33に示すように、まず、実行する特図変動表示ゲームの種別(ここでは特図1)を示す特図1変動フラグを変動図柄判別領域にセーブし(ステップS491)、第1特図変動表示ゲームが大当りであるか否かを判別するための大当りフラグ1にはずれ情報や大当り情報を設定する大当りフラグ1設定処理(ステップS492)を行う。なお、ステップS492における大当りフラグ1設定処理の詳細については後述する。
【0235】
次に、特図1停止図柄(図柄情報)の設定に係る特図1停止図柄設定処理(ステップS493)を行った後、変動パターンを設定するためのパラメータである特図情報を設定する特図情報設定処理(ステップS494)を行い、第1特図変動表示ゲームの変動パターンの設定に関する種々の情報を参照するための情報が設定されたテーブルである特図1変動パターン設定情報テーブルを準備する(ステップS495)。その後、第1特図変動表示ゲームにおける変動態様である変動パターンを設定する変動パターン設定処理(ステップS496)を行い、第1特図変動表示ゲームの変動開始の情報を設定する変動開始情報設定処理(ステップS497)を行って、特図1変動開始処理を終了する。
なお、ステップS493における特図1停止図柄設定処理、ステップS494における
特図情報設定処理、ステップS496における変動パターン設定処理、ステップS497における変動開始情報設定処理の詳細については後述する。
【0236】
〔大当りフラグ1設定処理〕
次に、上述の特図1変動開始処理1における大当りフラグ1設定処理(ステップS492)の詳細について図34により説明する。
ルーチンが開始すると、ステップS501で大当りフラグ1領域にはずれ情報をセーブする。大当り判定前には、予めはずれの情報をセットしておくためである。次いで、ステップS502でRWMの特図1大当り乱数格納領域(保留数1用)から大当り乱数をロードして準備する。なお、保留数1用とは、消化順序が最先(ここでは特図1のうちで最先)の特図始動記憶についての情報(乱数等)を格納する領域である。その後、取得した大当り乱数値が大当り判定値と一致するか否かに応じて大当りであるか否かを判定する大当り判定処理(ステップS503)を行う。これは、今回、抽出した特図1に対応する大当り乱数が大当りの範囲(大当り下限判定値と上限判定値の間にある値:大当り判定値と一致)にあるかどうかをチェックするもので、大当りの範囲内にあれば、大当りと判断できる(詳細ルーチンは後述)。
【0237】
ステップS503のチェック結果はステップS504で判定し、判定結果が大当り(YES)であれば、ステップS505に進み、ステップS501にてはずれ情報をセーブした大当りフラグ1領域に大当り情報を上書きしてセーブし、大当りフラグ1設定処理を終了する。
一方、ステップS504でNOのとき(はずれのとき)には、大当りフラグ1設定処理を終了する。したがって、このときは、大当りフラグ1にはずれ情報がセーブされた状態で処理を終わり、大当りフラグ1は設定されない。
【0238】
〔大当り判定処理〕
次に、上述の大当りフラグ1設定処理における大当り判定処理(ステップS503)の詳細について図35により説明する。
ルーチンが開始すると、ステップS511で大当り判定用の下限判定値を設定する処理を行う。その後、ステップS512で対象の大当り乱数の値が下限判定値未満であるか否かをチェック、つまり、図34のステップS502で読み込んだ大当り乱数の値が、当該大当り乱数の当り判定値の下限値未満であるかをチェックする。
なお、大当りであるとは大当り乱数が大当り判定値と一致することである。大当り判定値は連続する複数の値であり、大当り乱数が、大当り判定値の下限の値である下限判定値以上で、かつ、大当り判定値の上限の値である上限判定値以下である場合に、大当りであると判定される。
ステップS512で大当り乱数の値が下限判定値未満であると判定すると、ステップS517に分岐し、判定結果としてはずれを設定し、リターンする。
【0239】
一方、ステップS512で大当り乱数の値が下限判定値未満でなければ、ステップS513に進んで、高確率中か否かを判定する。これは、確率変動により大当り確率が高い状態にあるかどうかを判定するもの、すなわち、特図変動表示ゲームにて当り結果となる確率が高確率状態(確率変動状態)となっているか否かを判定するものである。高確率中であれば、ステップS514で高確率中における大当り判定用の上限判定値を設定する処理を行い、その後、ステップS516に進む。
また、ステップS513で高確率中でないと判定すると、ステップS515に分岐し、低確率中における大当り判定用の上限判定値を設定する処理を行い、その後、ステップS516に進む。
このようにして、高確率中と低確率中の上限判定値が設定された場合、対象の大当り乱数の値が下限判定値と上限判定値で挟まれた間(ゾーン)にあれば、大当りと判断できることになる。
そのため、ステップS516では対象の大当り乱数の値が上限判定値より大きいか(上限判定値を超えたか)否かをチェックし、ステップS516で大当り乱数の値が上限判定値より大きいと判定(ステップS516;YES)すると、大当りではないと判断できるので、ステップS517に進んで判定結果としてはずれを設定し、リターンする。
一方、ステップS516で対象の大当り乱数の値が上限判定値以下である(上限判定値を超えていない)と判定(ステップS516;NO)すると、対象の大当り乱数の値が下限判定値と上限判定値で挟まれた間(ゾーン)にあらから、大当りと判断して、ステップS518で判定結果として大当りを設定してリターンする。
【0240】
〔特図1停止図柄設定処理〕
次に、上述の特図1変動開始処理1における特図1停止図柄設定処理(ステップS493)の詳細について図36により説明する。
ルーチンが開始すると、ステップS521で大当りフラグ1が大当りか(大当り情報がセーブされているか)どうかをチェックし、大当りである場合(ステップS521;YES)は、特図1大当り図柄乱数格納領域(保留数1用)から大当り図柄乱数をロードする(ステップS522)。次に、特図1大当り図柄テーブルを設定する(ステップS523)。
ここで、特図1大当り図柄テーブル上に定義されている情報としては、以下のものがある。
・乱数の判定値(振り分け率を示す)
・判定値に対応する停止図柄番号
続けて、ステップS524に進み、ロードした大当り図柄乱数に対応する停止図柄番号を取得して特図1停止図柄番号領域にセーブする。この処理により特別結果の種類が選択される。停止図柄番号とは、特図表示器(ここでは、一括表示装置35における7セグメントの特図1表示器)での停止図柄を設定するものである。
【0241】
その後、大当り停止図柄情報テーブルを設定し(ステップS525)、停止図柄番号に対応する停止図柄パターンを取得して停止図柄パターン領域にセーブする(ステップS526)。停止図柄パターンとは、表示装置41での停止図柄の種別(はずれ、16R確変、11R確変、2R確変、11R通常など)を設定するためのものである。次に、停止図柄番号に対応する確率変動判定フラグを取得して確率変動判定フラグ領域にセーブする(ステップS527)。確率変動判定フラグは特別遊技状態の終了後の確率状態を設定するためのものである。
【0242】
さらに、停止図柄番号に対応するラウンド数上限値情報を取得してラウンド数上限値情報領域にセーブし(ステップS528)、停止図柄番号に対応する大入賞口開放情報を取得して大入賞口開放情報領域にセーブする(ステップS529)。これらの情報は、特別遊技状態の実行態様を設定するためのものである。そして、停止図柄パターンに対応する飾り特図コマンドを準備する(ステップS532)。
【0243】
一方、ステップS521で大当りフラグ1が大当りでない場合(ステップS521;NO)は、はずれ時の停止図柄番号を特図1停止図柄番号領域にセーブし(ステップS530)、はずれ停止図柄パターンを停止図柄パターン領域にセーブして(ステップS531)、停止図柄パターンに対応する飾り特図コマンドを準備する(ステップS532)。
飾り特図コマンドは、例えば11種類あり、この種類の違いにより演出制御装置300における特図種別が判別できるようになっている。
以上の処理により、特図変動表示ゲームの結果に対応した停止図柄が設定される。
【0244】
その後、飾り特図コマンドを飾り特図コマンド領域にセーブし(ステップS533)、コマンド設定処理(ステップS534)を行う。この飾り特図コマンドは、後に演出制御装置300に送信される。そして、停止図柄番号に対応する図柄データを試験信号出力データ領域にセーブして(ステップS535)、特図1大当り図柄乱数格納領域(保留数1用)を0クリアして(ステップS536)、特図1停止図柄設定処理を終了する。
【0245】
〔特図情報設定処理〕
次に、上述の特図1変動開始処理における特図情報設定処理(ステップS494)の詳細について図37により説明する。
特図情報設定処理では、まず、特図時短中(時短状態)であるかを判定する(ステップS541)。
ここで、時短とは例えば大当たり終了後、特図や普図の変動時間を通常よりも短縮し、時間効率を高めるとともに、普図当たり確率を高めて普通電動役物(普電)(第2始動入賞口26)の開放(普電の開放時間を通常よりも長くすることも含む)による始動口への入賞のサポート(つまり、普電サポート)を行うことであり、そのうち、特図時短は特図に関してのものであり、特図の変動時間を短縮し、かつ普電サポートを行う状態である。
特図時短中でない場合(ステップS541;NO)は、通常時の変動パターン選択グループ情報テーブルを設定する(ステップS542)。また、特図時短中である場合(ステップS541;YES)は、時短時の変動パターン選択グループ情報テーブルを設定する(ステップS543)。ステップS542を経ると、ステップS544に進む。また、ステップS543を経た場合もステップS544に進む。
【0246】
そして、ステップS544に進むと、変動図柄判別フラグに対応する特図保留数をロードし、その後、特図保留数に対応する変動パターン選択グループ情報を取得して変動振分情報1領域にセーブする(ステップS545)。これにより、変動振分情報1領域には、変動を開始する特図の種別(特図1又は特図2)と、当該特図の種別についての始動記憶数に関する情報である保留数情報と、時短状態か否かの情報を含む遊技状態情報とから求められる変動振分情報1がセーブされる。この変動振分情報1は後に変動グループを選択するために用いられる。
なお、変動グループとは複数の変動パターンが含まれたもので、変動パターンを決定する際には、まず変動グループを選択し、さらにこの変動グループの中から一の変動パターンを選択するようになっている。
【0247】
次に、振分ベースポインタテーブルを設定し(ステップS546)、停止図柄パターンに対応する振分ベースポインタを取得する(ステップS547)。さらに、取得したポインタに演出モード番号を加算し(ステップS548)、加算後の値を変動振分情報2領域にセーブして(ステップS549)、特図情報設定処理を終了する。
これにより、変動振分情報2領域には、停止図柄パターン情報と、演出モード情報とからとから求められる変動振分情報2がセーブされる。この変動振分情報2は後に変動グループを選択するために用いられる。なお、演出モードは、確率状態、時短状態の有無、特図変動表示ゲームの進行状況などに応じて、複数の演出モードから一の演出モードが設定されるようになっている。
【0248】
〔変動パターン設定処理〕
次に、上述の特図1変動開始処理における変動パターン設定処理(ステップS496)の詳細について図38により説明する。
なお、変動パターンは、特図変動表示ゲームの開始からリーチ状態となるまでの変動態様である前半変動パターンと、リーチ状態となってから特図変動表示ゲームの終了までの変動態様である後半変動パターンとからなり、先に後半変動パターンを設定してから前半変動パターンを設定する。
【0249】
変動パターン設定処理では、まず、変動グループ選択アドレステーブルを設定し(ステップS551)、変動振分情報2に対応する後半変動グループテーブルのアドレスを取得して準備する(ステップS552)。そして、演出モード番号が2未満(0又は1の何れか)であるかを判定する(ステップS553)。
演出モード番号が2未満でない場合(ステップS553;NO)は、停止図柄パターンがはずれ停止図柄パターンであるかを判定する(ステップS554)。これは、保留数によって振分が異なるパターン(モード)か否かを判定するものである。
次いで、停止図柄パターンがはずれ停止図柄パターンでない場合(ステップS554;NO)は、対象の変動パターン乱数1格納領域(保留数1用)から変動パターン乱数1をロードして準備する(ステップS557)。
【0250】
一方、演出モード番号が2未満である場合(ステップS553;YES)や、停止図柄パターンがはずれ停止図柄パターンである場合(ステップS554;YES)は、ステップS552で準備したテーブルから変動振分情報1に対応するテーブルのアドレスを取得する(ステップS555)。ステップS555の処理は、保留数によって振分が異なるパターン(モード)であった場合に行うものである。
次に、取得したアドレスを後半変動グループのアドレスとして準備し(ステップS556)、対象の変動パターン乱数1格納領域(保留数1用)から変動パターン乱数1をロードして準備する(ステップS557)。
演出モード番号が2未満である場合や、停止図柄パターンがはずれ停止図柄パターンである場合は、始動記憶数に関する情報である保留数情報から求められた変動振分情報1も加味してアドレスを取得することで、始動記憶数によって変動パターンの選択態様が異なるようにされている。
【0251】
その後、2バイト振分処理(ステップS558)を行い、振り分けられた結果得られた後半変動選択テーブルのアドレスを取得して準備し(ステップS559)、対象の変動パターン乱数2格納領域(保留数1用)から変動パターン乱数2をロードして準備する(ステップS560)。そして、振り分け処理(ステップS561)を行い、振り分けられた結果得られた後半変動番号を取得し、後半変動番号領域にセーブする(ステップS602)。この処理により、後半変動パターンが設定されることとなる。
【0252】
次に、前半変動グループテーブルを設定し(ステップS563)、変動振分情報1と2(決定された後半変動番号を含む)を基にテーブル選択ポインタを算出する(ステップS564)。そして、算出したポインタに対応する前半変動選択テーブルのアドレスを取得して準備し(ステップS565)、対象の変動パターン乱数3格納領域(保留数1用)から乱数をロードして準備する(ステップS566)。その後、振り分け処理(ステップS567)を行い、振り分けられた結果得られた前半変動番号を取得して前半変動番号領域にセーブし(ステップS568)、変動パターン設定処理を終了する。この処理により、前半変動パターンが設定され、特図変動表示ゲームの変動パターンが設定されることとなる。
【0253】
〔2バイト振り分け処理〕
次に、上述の変動パターン設定処理における2バイト振り分け処理(ステップS558)の詳細について図39により説明する。
2バイト振り分け処理は、変動パターン乱数1に基づいて後半変動グループテーブルから特図変動表示ゲームの後半変動選択テーブルを選択するための処理である。
【0254】
この2バイト振り分け処理では、まず、変動パターン設定処理にて準備した後半変動グループテーブル(選択テーブル)の先頭のデータが振り分けなしのコード(即ち、「0」)であるかをチェックする(ステップS571)。ここで、後半変動グループテーブルは、少なくとも一の後半変動パターングループと対応付けて所定の振り分け値を記憶しているが、後半変動パターンが「リーチなし」となる後半変動パターングループのみを規定する後半変動グループテーブル(例えば、結果がはずれの場合の一部の変動グループテーブル)のような場合には、振分けの必要がないため、振り分け値「0」、即ち、振り分けなしのコードが先頭に規定されている。
【0255】
そして、後半変動グループテーブルの先頭のデータが振り分けなしのコードである場合(ステップS572;YES)は、振り分けた結果に対応するデータのアドレスに更新して(ステップS577)、2バイト振り分け処理を終了する。一方、後半変動グループテーブルの先頭のデータが振り分けなしのコードでない場合(ステップS572;NO)は、後半変動グループテーブルに最初に規定されている一の振り分け値を取得する(ステップS573)。
【0256】
続けて、ステップS557にてロードされた乱数値(変動パターン乱数1の値)からステップS573にて取得された振り分け値を減算して新たな乱数値を算出し(ステップS574)、当該算出された新たな乱数値が「0」よりも小さいかを判定する(ステップS575)。新たな乱数値が「0」よりも小さくない場合(ステップS575;NO)は、次の振り分け値のアドレスに更新した後(ステップS576)、処理をステップS573に移行して、それ以降の処理を行う。即ち、ステップS573にて、変動グループ選択テーブルに次に規定されている振り分け値を取得した後、ステップS575にて判定済みの乱数値を新たな乱数値として振り分け値を減算し、さらに新たな乱数値を算出する(ステップS574)。そして、算出された新たな乱数値が「0」よりも小さいか否かを判定する(ステップS575)。
【0257】
上記の処理をステップS575にて、新たな乱数値が「0」よりも小さい(ステップS575;YES)と判定するまで実行する。これにより、後半変動グループテーブルに規定されている少なくとも一の後半変動選択テーブルの中から何れか一の後半変動選択テーブルが選択される。そして、ステップS575にて、新たな乱数値が「0」よりも小さい(ステップS575;YES)と判定すると、振り分けた結果に対応するデータのアドレスに更新して(ステップS577)、2バイト振り分け処理を終了する。
【0258】
〔振り分け処理〕
次に、上述の変動パターン設定処理における振り分け処理(ステップS561、S567)の詳細について図40により説明する。
振り分け処理は、変動パターン乱数2に基づいて、後半変動選択テーブル(後半変動パターングループ)から特図変動表示ゲームの後半変動パターンを選択したり、変動パターン乱数3に基づいて、前半変動選択テーブル(前半変動パターングループ)から特図変動表示ゲームの前半変動パターンを選択したりするための処理である。
【0259】
この振り分け処理では、まず、準備された後半変動選択テーブル(選択テーブル)や前半変動選択テーブル(選択テーブル)の先頭のデータが振り分けなしのコード(即ち、「0」)であるか否かをチェックする(ステップS581)。ここで、後半変動選択テーブルや前半変動選択テーブルは、後半変動グループテーブルと同様に、少なくとも一の後半変動パターンや前半変動パターンと対応付けて所定の振り分け値を記憶しているが、振分けの必要がない選択テーブルの場合、振り分け値「0」、即ち、振り分けなしのコードが先頭に規定されている。
【0260】
そして、後半変動選択テーブルや前半変動選択テーブルの先頭のデータが振り分けなしのコードである場合(ステップS582;YES)は、振り分けた結果に対応するデータのアドレスに更新して(ステップS587)、振り分け処理を終了する。一方、後半変動選択テーブルや前半変動選択テーブルの先頭のデータが振り分けなしのコードでない場合(ステップS582;NO)は、後半変動選択テーブルや前半変動選択テーブルに最初に規定されている一の振り分け値を取得する(ステップS583)。
【0261】
続けて、ステップS560やS566にてロードされた乱数値(変動パターン乱数2や変動パターン乱数3の値)からステップS583にて取得された振り分け値を減算して新たな乱数値を算出した後(ステップS584)、当該算出された新たな乱数値が「0」よりも小さいかを判定する(ステップS585)。そして、新たな乱数値が「0」よりも小さくない場合(ステップS585;NO)は、次の振り分け値のアドレスに更新した後(ステップS586)、処理をステップS583に移行して、それ以降の処理を行う。
【0262】
即ち、ステップS583にて、後半変動選択テーブルや前半変動選択テーブルに次に規定されている振り分け値を取得した後、ステップS585にて判定済みの乱数値を新たな乱数値として振り分け値を減算し、さらに新たな乱数値を算出する(ステップS584)。そして、算出された新たな乱数値が「0」よりも小さいか否かを判定する(ステップS585)。上記の処理をステップS585にて、新たな乱数値が「0」よりも小さい(ステップS585;YES)と判定するまで実行する。これにより、後半変動選択テーブルや前半変動選択テーブルに規定されている少なくとも一の後半変動パターンや前半変動パターンの中から何れか一の後半変動番号や前半変動番号を選択する。そして、ステップS585にて、新たな乱数値が「0」よりも小さい(ステップS585;YES)と判定すると、振り分けた結果に対応するデータのアドレスに更新して(ステップS587)、振り分け処理を終了する。
【0263】
〔変動開始情報設定処理〕
次に、上述の特図1変動開始処理における変動開始情報設定処理理(ステップS497)の詳細について図41により説明する。
変動開始情報設定処理では、まず、対象となる変動パターン乱数1〜3のRWMの乱数格納領域をクリアした後(ステップS601)、変動パターン設定処理にて取得された前半変動番号に対応する前半変動時間値テーブルの値を取得する処理(ステップS602)を行い、続けて、前半変動番号に対応する前半変動時間値を取得する処理(ステップS603)を行い、さらに、後半変動パターン設定処理にて取得された後半変動番号に対応する後半変動時間値テーブルを設定する処理(ステップS604)を行う。
【0264】
次に、後半変動番号に対応する後半変動時間値を取得する処理(ステップS605)を行い、続けて、取得された前半変動時間値と後半変動時間値とを加算する処理(ステップS606)を行った後、加算値を特図ゲーム処理タイマ領域にセーブする(ステップS607)。
続けて、前半変動番号に対応する変動コマンド(MODE)を算出して準備した後(ステップS608)、後半変動番号の値を変動コマンド(ACTION)として準備して(ステップS609)、コマンド設定処理(ステップS610)を行う。
【0265】
次に、変動図柄判別フラグに対応する特図保留数を−1更新し(ステップS611)、変動図柄判別フラグに対応する乱数格納領域のアドレスを設定して(ステップS612)、乱数格納領域をシフトし(ステップS613)、シフト後の空き領域を0クリアする(ステップS614)。
その後、特図変動表示ゲームの結果を表示する停止時間の延長に関する処理として、まず、停止延長情報領域をクリアする(ステップS615)。そして、停止図柄パターンがはずれ停止図柄パターンであり(ステップS616;YES)、演出モード番号が2であり(ステップS617;YES)、当該演出モードでの残り回転数(ゲーム数)が1である場合(ステップS618;YES)は、特図高確率(高確率状態)中であるかを判定する(ステップS619)。
【0266】
特図高確率中でない場合(ステップS619;NO)は、停止延長情報1を停止延長情報領域にセーブし(ステップS620)、停止延長情報に対応する停止情報コマンドを準備して(ステップS622)、コマンド設定処理(ステップS623)を行い、変動開始情報設定処理を終了する。これにより、停止時間が通常特図表示時間(通常停止時間)よりも延長された特図延長表示時間1(第1延長停止時間)に設定される。
また、特図高確率中である場合(ステップS519;YES)は、停止延長情報2を停止延長情報領域にセーブし(ステップS621)、停止延長情報に対応する停止情報コマンドを準備して(ステップS622)、コマンド設定処理(ステップS623)を行い、変動開始情報設定処理を終了する。これにより、停止時間が通常特図表示時間よりも延長された特図延長表示時間2(第2延長停止時間)に設定される。
【0267】
一方、停止図柄パターンがはずれ停止図柄パターンでない場合(ステップS616;NO)や、演出モード番号が2でない場合(ステップS617;NO)、演出モード2での残り回転数(ゲーム数)が1でない場合(ステップS618;NO)は、変動開始情報設定処理を終了する。この場合は停止時間の延長が設定されず、通常停止時間が設定される。
このように、特図変動表示ゲームの停止時間は、当該特図変動表示ゲームの結果や特定回転数であるか否か、演出モードの状態に基づき、当該特図変動表示ゲームの開始時に設定が行われるようになっている。これにより、例えば変動時間と停止時間とで連続する演出を設定することが可能となり、遊技の興趣を向上することができる。
【0268】
以上の処理により、特図変動表示ゲームの開始に関する情報が設定される。すなわち、遊技制御装置100が、始動記憶手段(遊技制御装置100)に記憶された各種の乱数値の判定を行う判定手段をなす。また、遊技制御装置100が、始動記憶の判定情報に基づいて、変動表示ゲームで実行する識別情報の変動パターンを決定することが可能な変動パターン決定手段をなす。
【0269】
そして、これらの特図変動表示ゲームの開始に関する情報は後に演出制御装置300に送信され、演出制御装置300では、特図変動表示ゲームの開始に関する情報の受信に基づき、決定された変動パターンに応じて飾り特図変動表示ゲームでの詳細な演出内容を設定する。これらの特図変動表示ゲームの開始に関する情報としては、始動記憶数(保留数)に関する情報を含む飾り特図保留数コマンド、停止図柄に関する情報を含む飾り特図コマンド、特図変動表示ゲームの変動パターンに関する情報を含む変動コマンド、停止時間の延長に関する情報を含む停止情報コマンドが挙げられ、この順でコマンドが演出制御装置300に送信される。特に、飾り特図コマンドを変動コマンドよりも先に送信することで、演出制御装置300での処理を効率よく進めることができる。
【0270】
〔特図2変動開始処理〕
次に、上述の特図普段処理における特図2変動開始処理1(ステップS464)の詳細について図42により説明する。
図2変動開始処理は、第2特図変動表示ゲームの開始時に行う処理であって、図33に示した特図1変動開始処理での処理と同様の処理を、第2始動記憶を対象として行うものである。
ルーチンが開始すると、まず、実行する特図変動表示ゲームの種別(ここでは特図2)を示す特図2変動フラグを変動図柄判別領域にセーブし(ステップS631)、第2特図変動表示ゲームが大当りであるか否かを判別するための大当りフラグ2にはずれ情報や大当り情報を設定する大当りフラグ2設定処理(ステップS632)を行う。なお、ステップS632における大当りフラグ2設定処理の詳細については後述する。
【0271】
次に、特図2停止図柄(図柄情報)の設定に係る特図2停止図柄設定処理(ステップS633)を行った後、変動パターンを設定するためのパラメータである特図情報を設定する特図情報設定処理(ステップS634、図37参照)を行い、第2特図変動表示ゲームの変動パターンの設定に関する種々の情報を参照するための情報が設定されたテーブルである特図2変動パターン設定情報テーブルを準備する(ステップS635)。その後、第2特図変動表示ゲームの変動パターンを設定する変動パターン設定処理(ステップS636、図38参照)を行い、第2特図変動表示ゲームの変動開始の情報を設定する変動開始情報設定処理(ステップS637、図41参照)を行って、特図2変動開始処理を終了する。
【0272】
〔大当りフラグ2設定処理〕
次に、上述の特図2変動開始処理1における大当りフラグ2設定処理(ステップS632)の詳細について図43により説明する。
この処理は、図34に示した大当りフラグ1設定処理での処理と同様の処理を、第2始動記憶を対象として行うものである。この大当りフラグ2設定処理では、まず、大当りフラグ2領域にはずれ情報をセーブする(ステップS641)。大当り判定前には、予めはずれの情報をセットしておくためである。次に、RWMの特図2大当り乱数格納領域(保留数1用)から大当り乱数をロードして準備する(ステップS642)。なお、保留数1用とは、消化順序が最先(ここでは特図2のうちで最先)の特図始動記憶についての情報(乱数等)を格納する領域である。その後、取得した大当り乱数値が大当り判定値と一致するか否かに応じて大当りであるか否かを判定する大当り判定処理(ステップS643、図35参照)を行う。これは、今回、抽出した特図2に対応する大当り乱数が大当りの範囲(大当り下限判定値と上限判定値の間にある値:大当り判定値と一致)にあるかどうかをチェックするもので、大当りの範囲内にあれば、大当りと判断できる。
【0273】
そして、大当り判定処理(ステップS643)の判定結果が大当りである場合(ステップS644;YES)は、ステップS641にてはずれ情報をセーブした大当りフラグ2領域に大当り情報を上書きしてセーブし(ステップS645)、大当りフラグ2設定処理を終了する。一方、大当り判定処理(ステップS643)の判定結果が大当りでない場合(ステップS644;NO)は、大当りフラグ2にはずれ情報をセーブしたまま大当りフラグ2設定処理を終了する。したがって、このときは、大当りフラグ2にはずれ情報がセーブされた状態で処理を終わり、大当りフラグ2は設定されない。
【0274】
〔特図2停止図柄設定処理〕
次に、上述の特図2変動開始処理における特図2停止図柄設定処理(ステップS633)の詳細について図44により説明する。
この処理は、図36に示した特図2停止図柄設定処理と同様の処理を、第2始動記憶を対象として行うものである。
ルーチンが開始すると、ステップS651で大当りフラグ2が大当りか(大当り情報がセーブされているか)どうかをチェックし、大当りである場合(ステップS651;YES)は、特図2大当り図柄乱数格納領域(保留数1用)から大当り図柄乱数をロードする(ステップS652)。次に、特図2大当り図柄テーブルを設定する(ステップS653)。
ここで、特図2大当り図柄テーブル上に定義されている情報としては、以下のものがある。
・乱数の判定値(振り分け率を示す)
・判定値に対応する停止図柄番号
続けて、ステップS654に進み、ロードした大当り図柄乱数に対応する停止図柄番号を取得して特図2停止図柄番号領域にセーブする。この処理により特別結果の種類が選択される。停止図柄番号とは、特図表示器(ここでは、一括表示装置35における7セグメントの特図2表示器)での停止図柄を設定するものである。
【0275】
その後、大当り停止図柄情報テーブルを設定し(ステップS655)、停止図柄番号に対応する停止図柄パターンを取得して停止図柄パターン領域にセーブする(ステップS656)。停止図柄パターンとは、表示装置41での停止図柄の種別(はずれ、16R確変、11R確変、2R確変、11R通常など)を設定するためのものである。次に、停止図柄番号に対応する確率変動判定フラグを取得して確率変動判定フラグ領域にセーブする(ステップS657)。確率変動判定フラグは特別遊技状態の終了後の確率状態を設定するためのものである。
【0276】
さらに、停止図柄番号に対応するラウンド数上限値情報を取得してラウンド数上限値情報領域にセーブし(ステップS658)、停止図柄番号に対応する大入賞口開放情報を取得して大入賞口開放情報領域にセーブする(ステップS659)。これらの情報は、特別遊技状態の実行態様を設定するためのものである。そして、停止図柄パターンに対応する飾り特図コマンドを準備する(ステップS662)。
【0277】
一方、ステップS651で大当りフラグ2が大当りでない場合(ステップS651;NO)は、はずれ時の停止図柄番号を特図2停止図柄番号領域にセーブし(ステップS660)、はずれ停止図柄パターンを停止図柄パターン領域にセーブして(ステップS661)、停止図柄パターンに対応する飾り特図コマンドを準備する(ステップS662)。
飾り特図コマンドは、例えば11種類あり、この種類の違いにより演出制御装置300における特図種別が判別できるようになっている。
以上の処理により、特図変動表示ゲームの結果に対応した停止図柄が設定される。
【0278】
その後、飾り特図コマンドを飾り特図コマンド領域にセーブし(ステップS663)、コマンド設定処理(ステップS664)を行う。この飾り特図コマンドは、後に演出制御装置300に送信される。そして、停止図柄番号に対応する図柄データを試験信号出力データ領域にセーブして(ステップS665)、特図2大当り図柄乱数格納領域(保留数1用)を0クリアして(ステップS666)、特図2停止図柄設定処理を終了する。
【0279】
上記の特図1停止図柄設定処理及び特図2停止図柄設定処理により、遊技制御装置100が、第1始動入賞口(始動入賞口36)での遊技球の検出に基づいて変動表示ゲームとして第1変動表示ゲームを実行し、第2始動入賞口(普通変動入賞装置37)での遊技球の検出に基づいて変動表示ゲームとして第2変動表示ゲームを実行する変動表示ゲーム実行手段をなす。また、遊技制御装置100が、判定手段(遊技制御装置100)による判定結果に基づき変動表示ゲームの実行を制御する変動表示ゲーム実行制御手段をなす。
【0280】
〔特図変動中処理移行設定処理(特図1)〕
次に、上述の特図普段処理における特図変動中処理移行設定処理(特図1)(ステップS470)の詳細について図45により説明する。
ルーチンが開始すると、ステップS671で処理番号として「1」(特図変動中処理に係る処理番号に相当)を設定し、ステップS672で特図ゲーム処理番号領域に処理番号(ここでは「1」)をセーブする。次いで、ステップS673で客待ちデモフラグ領域をクリアし、ステップS674で特図1変動開始に関する信号を試験信号出力データ領域にセーブする。
次いで、ステップS675で特図1変動制御フラグ領域に変動中フラグをセーブし、ステップS676で特図1点滅制御タイマ領域に点滅制御タイマ(一括表示装置35の中のLEDセグメントである特図1表示器の点滅の周期のタイマ)の初期値(例えば、200ms)をセーブしてルーチンを終了する。
このようにして、特図1に関して特図変動中処理に移行するための処理が行われる。
【0281】
〔特図変動中処理移行設定処理(特図2)〕
次に、上述の特図普段処理における特図変動中処理移行設定処理(特図2)(ステップS465)の詳細について図46により説明する。
ルーチンが開始すると、ステップS681で処理番号として「1」(特図変動中処理に係る処理番号に相当)を設定し、ステップS682で特図ゲーム処理番号領域に処理番号(ここでは「1」)をセーブする。次いで、ステップS683で客待ちデモフラグ領域をクリアし、ステップS684で特図2変動開始に関する信号を試験信号出力データ領域にセーブする。
次いで、ステップS685で特図2変動制御フラグ領域に変動中フラグをセーブし、ステップS686で特図2点滅制御タイマ領域に点滅制御タイマ(一括表示装置35の中のLEDセグメントである特図2表示器の点滅の周期のタイマ)の初期値(例えば、200ms)をセーブしてルーチンを終了する。
このようにして、特図2に関して特図変動中処理に移行するための処理が行われる。
【0282】
〔特図変動中処理〕
次に、上述の特図ゲーム処理における特図変動中処理(ステップS330)の詳細について図47により説明する。
特図変動中処理では、まず、停止延長情報(停止延長情報1又は2)があるかを判定する(ステップS691)。停止延長情報がない場合(ステップS691;NO)は、通常特図表示時間(例えば600ms)を特図ゲーム処理タイマ領域にセーブし(ステップS692)、特図表示中処理移行設定処理(ステップS696)を行って、特図表示中処理を終了する。
【0283】
また、停止延長情報がある場合(ステップS691;YES)は、停止延長情報1であるかを判定する(ステップS693)。停止延長情報1である場合(ステップS693;YES)は、特図延長表示時間1(例えば3500ms)を特図ゲーム処理タイマ領域にセーブし(ステップS694)、特図表示中処理移行設定処理(ステップS696)を行って、特図表示中処理を終了する。
一方、停止延長情報1でない場合(ステップS693;NO)、すなわち停止延長情報2である場合は、特図延長表示時間2(例えば14300ms)を特図ゲーム処理タイマ領域にセーブし(ステップS695)、特図表示中処理移行設定処理(ステップS696)を行って、特図表示中処理を終了する。すなわち、遊技制御装置100が、変動表示ゲームの停止結果態様を表示する停止時間を設定する停止時間設定手段をなす。
上記のように特図表示時間は、例えば以下のように制御される。
・通常特図表示時間:600ms
・特図延長表示時間1:3500ms
・特図延長表示時間2:14300ms
このように特図変動中処理においては、大当りの当否や後半変動番号ではなく、特図の変動開始時に設定されている停止延長情報(当該ゲームの当否や特定回転数、演出モード状態等により設定)を基に停止後の表示時間を決定している。
【0284】
〔特図表示中処理移行設定処理〕
次に、上述の特図変動中処理における特図表示中処理移行設定処理(ステップS696)の詳細について図48により説明する。
ルーチンが開始すると、ステップS701で処理番号として「2」(特図表示中処理に係る処理番号に相当)を設定し、ステップS702で特図ゲーム処理番号領域に処理番号(ここでは「2」)をセーブする。次いで、ステップS703で特図1変動終了処理に関する信号を試験信号出力データ領域にセーブし、ステップS704で特図2変動終了処理に関する信号を試験信号出力データ領域にセーブする。
次いで、ステップS705で図柄確定回数信号制御タイマ領域に制御タイマ初期値(例えば、256ms)をセーブする。その後、ステップS706で特図1変動制御フラグ領域に特図1表示器(一括表示装置35の中のLEDセグメントである特図1表示器)における特図1変動表示ゲームの制御用の情報として特図1表示器での変動停止に係る停止フラグをセーブし、ステップS707で特図2変動制御フラグ領域に停止フラグをセーブしてルーチンを終了する。
このようにして、特図表示中処理に移行するための処理が行われる。
【0285】
〔特図表示中処理〕
次に、上述の特図ゲーム処理における特図表示中処理(ステップS331)の詳細について図49により説明する。
特図表示中処理では、まず、特図2変動開始処理1における大当りフラグ2設定処理にて設定された大当りフラグ2をロードして(ステップS711)、RWMの大当りフラグ2領域をクリアする処理(ステップS712)を行う。
次に、ロードされた大当りフラグ2が大当りかをチェックして(ステップS713)、大当りである(ステップS713;YES)と判定すると、ステップS718にジャンプしてRWMの大当りフラグ1領域をクリアする処理を行い、次いで、ステップS719で特図2大当りの開始に関する信号を試験信号出力データ領域にセーブし、ステップS720に処理を移行する。
【0286】
一方、ステップS713にて、大当りフラグ2のチェックの結果、大当りでない(ステップS713;NO)と判定すると、特図1変動開始処理における大当りフラグ1設定処理にて設定された大当りフラグ1をロードして(ステップS714)、RWMの大当りフラグ1領域をクリアする処理(ステップS715)を行う。
続けて、ロードされた大当りフラグ1が大当りかをチェックして(ステップS716)、大当りである(ステップS716;YES)と判定すると、特図1大当りの開始に関する信号を試験信号出力データ領域にセーブし(ステップS717)、ステップS720に処理を移行する。
また、ステップS716で大当りでない(NO)と判定すると、ステップS736に処理を移行する。このときは、以後に時短の有無を判断して処理を進めることになる。
【0287】
さて、上述したステップS717における特図1大当りに関する試験信号のセーブ、或いは、ステップS719における特図2大当りに関する試験信号のセーブの後、ラウンド数上限値テーブルを設定する処理(ステップS720)を行う。
次いで、ラウンド数上限値情報に対応するラウンド数上限値を取得し、ラウンド数上限値をラウンド数上限値領域にセーブする(ステップS721)。続けて、ラウンド数上限値情報に対応するラウンドLEDポインタを取得し、当該ラウンドLEDポインタをラウンドLEDポインタ領域にセーブする(ステップS722)。
次に、停止図柄パターンに対応した飾り特図コマンドをRWMの飾り特図コマンド領域からロードして準備し(ステップS723)、コマンド設定処理(ステップS724)を行う。その後、普図変動表示ゲーム及び特図変動表示ゲームにて当り結果となる確率を通常確率状態(低確率状態)とする情報に係る低確率時の確率情報コマンドを準備して(ステップS725)、コマンド設定処理(ステップS726)を行う。続けて、特図1又は特図2停止図柄設定処理にて設定された図柄情報(停止図柄番号又は停止図柄パターン)に対応するファンファーレコマンドを準備して(ステップS727)、コマンド設定処理(ステップS728)を行う。
【0288】
次に、大入賞口開放情報と、普図変動表示ゲーム及び特図変動表示ゲームにて当り結果となる確率の状態に対応する信号をRWMの外部情報出力データ領域にセーブする(ステップS729)。その後、大入賞口開放情報に対応する大当りファンファーレ時間(例えば6000ms又は48ms)を特図ゲーム処理タイマ領域にセーブする(ステップS730)。そして、大入賞口開放情報に対応する大入賞口(第1特別変動入賞装置27又は第2特別変動入賞装置33)の大入賞口不正入賞数領域をクリアし(ステップS731)、大入賞口開放情報に対応する大入賞口の大入賞口不正監視期間フラグ領域に不正監視期間外フラグをセーブする(ステップS732)。
次に、特図ゲームモードフラグをロードし(ステップS733)、ロードしたフラグを特図ゲームモードフラグ退避領域へセーブする(ステップS734)。これにより、特別結果が発生した際における確率状態の情報が記憶される。そして、後に記憶した情報に基づき特別遊技状態の終了後の演出モードが決定される。
【0289】
その後、ファンファーレ/インターバル中処理に移行するための各種データを設定する移行設定処理1(ファンファーレ/インターバル中処理移行設定処理1)(ステップS735)を行い、特図表示中処理を終了する。
具体的には、ファンファーレ/インターバル中処理に係る処理番号「3」、各種状態の切り替えに係る情報を設定する処理等を行って、特図変動中処理を終了する。
ここで、各種状態が切り替わるための情報としては、例えば、外部情報端子板55に出力用の遊技状態が特別遊技状態(大当り状態)であることを示す信号、普図変動表示ゲーム及び特図変動表示ゲームにて当り結果となる確率が通常確率状態(低確率状態)であることを示す試験信号、大入賞口不正監視期間における大入賞口への入賞数のクリアに係る情報、特別遊技状態のラウンド数のクリアに係る情報、高確率状態の表示に係る遊技状態表示LEDを消灯させる情報、普図変動表示ゲームにて当り結果となる確率を通常確率状態(低確率状態)とする情報、停電復旧時に点灯した高確率状態の表示に係る遊技状態表示LED(高確率報知LED)を消灯させる情報、特図変動表示ゲームの制御用の情報(例えば、特図変動表示ゲームにて当り結果となる確率を通常確率状態(低確率状態)とする情報や、停電復旧時に演出制御装置300に出力される、普図変動表示ゲームや特図変動表示ゲームにて当り結果となる確率が通常確率状態(低確率状態)であることを示す情報や、大当り後の残り時間短縮変動回数のクリアに係る情報など)等が挙げられる。
【0290】
一方、上記ステップS716にて、大当りフラグ1が大当りでない場合(ステップS716;NO)は、演出モードの設定に関する演出モード情報チェック処理(ステップS736)を行い、時短状態とする特図変動表示ゲームの実行回数を管理する時間短縮変動回数更新処理(ステップS737)を行う。そして、特図普段処理に移行するための各種データを設定する特図普段処理移行設定処理1(ステップS738、図32参照)、具体的には、当該テーブルに特図普段処理に係る処理番号「0」等を設定する処理を行って、特図表示中処理を終了する。
【0291】
〔ファンファーレ/インターバル中処理移行設定処理1〕
次に、上述の特図表示中処理におけるファンファーレ/インターバル中処理移行設定処理1(ステップS735)の詳細について図50により説明する。
ルーチンが開始すると、ステップS741で処理番号として「3」(ファンファーレ/インターバル中処理に係る処理番号に相当)を設定し、ステップS742で特図ゲーム処理番号領域に処理番号(ここでは「3」)をセーブする。次いで、ステップS743で大当りの開始に関する信号を外部情報出力データ領域にセーブし、ステップS744で高確率&時短の終了に関する信号を試験信号出力データ領域にセーブする。
【0292】
次いで、ステップS745に進み、特別遊技状態で実行したラウンド数を管理するためのラウンド数領域をクリアし、続くステップS746で遊技状態表示番号領域に低確率時の番号をセーブし、ステップS747で普図ゲームモードフラグ領域に普図低確率&普電サポートなしフラグをセーブする。
次いで、ステップS748で変動図柄判別フラグ領域をクリアし、ステップS749で高確率状態の表示に係る遊技状態表示LEDを消灯させるために高確率報知フラグ領域をクリアし、ステップS750で特図ゲームモードフラグ領域に特図低確率&時短なしフラグをセーブし、ステップS751で停電復旧時に演出制御装置300に出力されるコマンドをセーブする停電復旧時送信コマンド領域に確率情報コマンド(低確率)をセーブする。次いで、ステップS752では時短状態で実行可能な特図変動表示ゲームの回数を管理するための時短変動回数領域をクリアする。これにより、高確率状態及び時短状態が終了し、通常確率状態かつ通常動作状態となる。
【0293】
その後、演出モード番号領域に演出モード1の番号をセーブし(ステップS753)、演出残り回転数領域をクリアする(ステップS754)。これは、遊技制御装置100(主基板)にて演出モードの管理をしているため、一旦、クリアするものである。
次いで、次モード移行情報領域に更新なしコードをセーブし(ステップS755)、演出モードコマンド領域に演出モード1のコマンドをセーブして(ステップS756)、ファンファーレ/インターバル中処理移行設定処理1を終了する。これにより、特別遊技状態の発生に伴い演出モードの情報が一旦クリア(つまり、デフォルト状態の初期値になる)されることとなる。
【0294】
〔演出モード情報チェック処理〕
次に、上述の特図表示中処理における演出モード情報チェック処理(ステップS736)の詳細について図51により説明する。
演出モード情報チェック処理では、まず、次モード移行情報が更新なしコードであるかを判定する(ステップS761)。次モード移行情報が更新なしコードである場合(ステップS761;YES)は、演出モード情報チェック処理を終了する。この場合は、実行した特図変動表示ゲームの回数に応じた演出モードの変更が行われない場合であって、例えば高確率状態において、次回の大当りまで継続する演出モードが選択されている場合である。
【0295】
また、次モード移行情報が更新なしコードでない場合(ステップS761;NO)は、演出モードの変更までの特図変動表示ゲームの実行可能回数である演出残り回転数を−1更新し(ステップS762)、演出残り回転数が0となったかを判定する(ステップS763)。演出残り回転数が0となった場合(ステップS763;YES)、すなわち次の特図変動表示ゲームから演出モードを変更する場合は、演出モード情報アドレステーブルを設定し(ステップS764)、次モード移行情報に対応するテーブルのアドレスを取得する(ステップS765)。
【0296】
そして、移行する演出モードの演出モード番号を取得して演出モード番号領域にセーブし(ステップS766)、移行する演出モードの演出残り回転数を取得して演出残り回転数領域にセーブして(ステップS767)、移行する演出モードの次モード移行情報を取得して次モード移行情報領域にセーブする(ステップS768)。その後、新たな演出モード番号に対応するコマンドを準備し(ステップS769)、コマンドを演出モードコマンド領域にセーブして(ステップS770)、コマンド設定処理(ステップS771)を行い、演出モード情報チェック処理を終了する。
【0297】
一方、演出残り回転数が0でない場合(ステップS763;NO)、すなわち次の特図変動表示ゲームでも現在の演出モードが継続する場合は、演出残り回転数が規定回転数(例えば8回)であるかを判定する(ステップS772)。演出残り回転数が規定回転数でない場合(ステップS772;NO)は、演出モード情報チェック処理を終了する。
また、演出残り回転数が規定回転数である場合(ステップS772;YES)は、演出モード切替準備コマンドを準備し(ステップS773)、コマンド設定処理(ステップS774)を行い、演出モード情報チェック処理を終了する。これにより、演出モードの切替の規定回転数前から切替を予告する演出を行うことが可能となる。
このように、遊技制御装置100で演出モードを管理するようにしたことで、例えば特定の演出モードでのみ特定のリーチを発生させる等の制御が可能となり、遊技の興趣を向上させることができる。
【0298】
〔時間短縮変動回数更新処理〕
次に、上述の特図表示中処理における時間短縮変動回数更新処理(ステップS737)の詳細について図52により説明する。
時間短縮変動回数更新処理では、まず、特図高確率(高確率状態)中であるかを判定する(ステップS781)。特図高確率中である場合(ステップS781;YES)は、時間短縮変動回数更新処理を終了する。また、特図高確率中でない場合(ステップS781;NO)は、特図時短(時短状態)中であるかを判定する(ステップS782)。
【0299】
特図時短中でない場合(ステップS782;NO)は、時間短縮変動回数更新処理を終了する。また、特図時短中である場合(ステップS782;YES)は、時短状態とする特図変動表示ゲームの実行回数を管理する時間短縮変動回数を−1更新し(ステップS783)、時間短縮変動回数が0となったかを判定する(ステップS784)。時間短縮変動回数が0でない場合(ステップS784;NO)、すなわち次の特図変動表示ゲームでも時短状態が継続する場合は、時間短縮変動回数更新処理を終了する。
また、時間短縮変動回数が0である場合(ステップS784;YES)、すなわち今回の特図変動表示ゲームで時短状態が終了する場合は、確率情報コマンド(時短終了)を準備する(ステップS785)。確率情報コマンド(時短終了)としては、低確率時と同様のコマンドを使用する。
次いで、コマンド設定処理(ステップS786)を行い、その後、時短終了設定処理を行い(ステップS787)、時間短縮変動回数更新処理を終了する。
【0300】
〔時短終了設定処理〕
次に、上述の時間短縮変動回数更新処理における時短終了設定処理(ステップS787)の詳細について図53により説明する。
時短終了設定処理では、まず、時短の終了に関する信号を外部情報出力データ領域にセーブし(ステップS791)、時短の終了に関する信号を試験信号出力データ領域にセーブする(ステップS792)。
次に、遊技状態表示番号領域に低確率中の番号をセーブし(ステップS793)、普図ゲームモードフラグ領域に普図低確率&普電サポートなしフラグをセーブする(ステップS794)。さらに、特図ゲームモードフラグ領域に特図低確率&時短なしフラグをセーブし(ステップS795)、停電復旧時送信コマンド領域に確率情報コマンド(低確率)をセーブして(ステップS796)、時短終了設定処理を終了する。
このようにして、時短回数を遊技制御装置100で管理して時短の終了時に必要な情報(状態)を設定することが行われる。
なお、本実施例の遊技機(パチンコ機1)における特別結果の種類と大入賞口(変動入賞装置)の開閉パターンについては、詳細な説明を後述する。
【0301】
〔ファンファーレ/インターバル中処理〕
次に、上述の特図ゲーム処理におけるファンファーレ/インターバル中処理(ステップS332)の詳細について図54図55により説明する。
ファンファーレ/インターバル中処理では、まず、特別遊技状態のラウンド数を更新(+1)する処理(ステップS801)を行った後、大入賞口開放情報が上大入賞口(第2変動入賞装置33)開閉パターン1〜3であるかを判定する(ステップS802)。
ここで、上大入賞口(第2変動入賞装置33)の開閉パターンとしては、後述の図95(詳細は後述)に示すように、上大入賞口開閉パターン1から上大入賞口開閉パターン5までの5種類の開閉パターンがあるので、ステップS802では開閉パターン1〜3であるかを判定するものである。
【0302】
大入賞口開放情報が上大入賞口開閉パターン1〜3である場合(ステップS802;YES)は、上大入賞口開閉パターン1〜3に対応する制御ポインタ(S(スタート値),E(エンド値))を設定し(ステップS809)、図55のステップS820に移行する。この制御ポインタのスタート値とエンド値を設定することで、一のラウンドにおける大入賞口の開放や閉鎖及びその時間を大入賞口制御テーブルに基づき設定可能となる。
なお、上大入賞口開閉パターン1〜3である場合は一のラウンドの実行時間が短いため、ラウンドごとではなく、特別遊技状態の開始から終了まで一連の映像を表示するようになっており、ラウンド数に対応するラウンドコマンドは送信しない。
また、大入賞口開放情報が上大入賞口開閉パターン1〜3でない場合(ステップS802;NO)は、特別遊技状態のラウンド数に対応するラウンドコマンドを準備して(ステップS803)、コマンド設定処理(ステップS804)を行う。
【0303】
その後、開始されるラウンドが初回ラウンド(1R)であるかを判定し(ステップS805)、初回ラウンドである場合(ステップS805;YES)は、大入賞口開放情報が下大入賞口(変動入賞装置27)開閉パターンであるかを判定する(ステップS806)。
ここで、下大入賞口(変動入賞装置27)の開閉パターンとしては、後述の図96(詳細は後述)に示すように、下大入賞口開閉パターン1から下大入賞口開閉パターン3までの3種類の開閉パターンがあるので、ステップS806では下大入賞口開閉パターン1〜3の何れかであるかを判定するものである。
大入賞口開放情報が下大入賞口開閉パターンである場合(ステップS806;YES)は、下大入賞口開閉パターンの初回ラウンド(1R)に対応する制御ポインタ(S,E)を設定し(ステップS810)、図55のステップS820に移行する。
なお、下大入賞口開閉パターン1〜3については、何れも初回ラウンドは同じ動作を行うようになっている。
また、大入賞口開放情報が下大入賞口開閉パターンでない場合(ステップS806;NO)は、大入賞口開放情報が上大入賞口開閉パターン4であるかを判定する(ステップS807)。
【0304】
大入賞口開放情報が上大入賞口開閉パターン4である場合(ステップS807;YES)は、上大入賞口開閉パターン4の初回ラウンド(1R)に対応する制御ポインタ(S,E)を設定し(ステップS808)、図55のステップS820に移行する。また、大入賞口開放情報が上大入賞口開閉パターン4でない場合(ステップS807;NO)は、上大入賞口開閉パターン5の初回ラウンド(1R)に対応する制御ポインタ(S,E)を設定し(ステップS811)、その後、図55のステップS820に移行する。
【0305】
一方、開始されるラウンドが初回ラウンド(1R)でない場合(ステップS805;NO)は、開始されるラウンドが2〜11ラウンドであるかを判定し(ステップS812)、開始されるラウンドが2〜11ラウンドである場合(ステップS812;YES)は、大入賞口開放情報が上大入賞口開閉パターンであるかを判定する(ステップS813)。そして、大入賞口開放情報が上大入賞口開閉パターンでない場合(ステップS813;NO)は、下大入賞口開閉パターンの2〜11ラウンドに対応する制御ポインタ(S,E)を設定し(ステップS814)、その後、図55のステップS820に移行する。
また、大入賞口開放情報が上大入賞口開閉パターンである場合(ステップS813;YES)は、上大入賞口開閉パターンの2ラウンド以降に対応する制御ポインタ(S,E)を設定し(ステップS815)、その後、図55のステップS820に移行する。
【0306】
また、開始されるラウンドが2〜11ラウンドでない場合(ステップS812;NO)は、大入賞口開放情報が上大入賞口開閉パターンであるかを判定する(ステップS816)。そして、大入賞口開放情報が上大入賞口開閉パターンである場合(ステップS816;YES)は、上大入賞口開閉パターンの2ラウンド以降に対応する制御ポインタ(S,E)を設定し(ステップS815)、その後、図55のステップS820に移行する。また、大入賞口開放情報が上大入賞口開閉パターンでない場合(ステップS816;NO)は、大入賞口開放情報が下大入賞口開閉パターン2であるかを判定する(ステップS817)。
【0307】
大入賞口開放情報が下大入賞口開閉パターン2である場合(ステップS817;YES)は、下大入賞口開閉パターン2の12ラウンド以降に対応する制御ポインタ(S,E)を設定し(ステップS818)、その後、図55のステップS820に移行する。
また、大入賞口開放情報が下大入賞口開閉パターン2でない場合(ステップS817;NO)は、下大入賞口開閉パターン3の12ラウンド以降に対応する制御ポインタ(S,E)を設定し(ステップS819)、その後、図55のステップS820に移行する。
【0308】
図55のステップS820では、設定した制御ポインタのスタート値(S)を大当り中制御ポインタ領域にセーブし(ステップS820)、設定した制御ポインタのエンド値(E)を大当り中制御ポインタ上限値領域にセーブする(ステップS821)。そして、ソレノイド情報設定処理(ステップS822)を行い、大入賞口開放情報が下大入賞口開閉パターンであるかを判定する(ステップS823)。
【0309】
大入賞口開放情報が下大入賞口開閉パターンである場合(ステップS823;YES)は、大入賞口開放中処理移行設定処理1を行い(ステップS824)、ファンファーレ/インターバル中処理を終了する。
また、大入賞口開放情報が下大入賞口開閉パターンでない場合(ステップS823;NO)は、大入賞口開放中処理移行設定処理2を行い(ステップS825)、ファンファーレ/インターバル中処理を終了する。
以上の処理により、後述の図95図96に示す開閉パターンの何れかが設定されることとなる。
【0310】
〔ソレノイド情報設定処理〕
次に、上述のファンファーレ/インターバル中処理におけるソレノイド情報設定処理(ステップS822)の詳細について図56により説明する。
ソレノイド情報設定処理では、まず、大入賞口制御アドレステーブルを設定し(ステップS831)、大当り中制御ポインタに対応する大入賞口制御テーブルのアドレスを取得する(ステップS832)。その後、出力データを取得し、大入賞口ソレノイド出力データ領域にセーブして(ステップS833)、開閉時間値を取得して特図ゲーム処理タイマ領域にセーブし(ステップS834)、ソレノイド情報設定処理を終了する。
この処理により、大入賞口の開放や閉鎖及びその時間が設定されることとなる。
【0311】
〔大入賞口開放中処理移行設定処理1〕
次に、上述のファンファーレ/インターバル中処理における大入賞口開放中処理移行設定処理1(ステップS824)の詳細について図57により説明する。
大入賞口開放中処理移行設定処理1においては、まず、処理番号を大入賞口開放中処理にかかる「4」に設定し(ステップS841)、処理番号を特図ゲーム処理番号領域にセーブする(ステップS842)。その後、下大入賞口の開放開始に関する信号を試験信号出力データ領域にセーブし(ステップS843)、大入賞口への入賞数を記憶する大入賞口カウント数領域の情報をクリアする(ステップS844)。そして、大入賞口判別フラグ領域に下大入賞口制御中フラグをセーブして(ステップS845)、大入賞口開放中処理移行設定処理1を終了する。
【0312】
〔大入賞口開放中処理移行設定処理2〕
次に、上述のファンファーレ/インターバル中処理における大入賞口開放中処理移行設定処理2(ステップS825)の詳細について図58により説明する。
大入賞口開放中処理移行設定処理2においては、まず、処理番号を大入賞口開放中処理にかかる「4」に設定し(ステップS851)、処理番号を特図ゲーム処理番号領域にセーブする(ステップS852)。その後、上大入賞口の開放開始に関する信号を試験信号出力データ領域にセーブし(ステップS853)、大入賞口への入賞数を記憶する大入賞口カウント数領域の情報をクリアする(ステップS854)。そして、大入賞口判別フラグ領域に上大入賞口制御中フラグをセーブして(ステップS855)、大入賞口開放中処理移行設定処理2を終了する。
【0313】
〔大入賞口開放中処理〕
次に、上述の特図ゲーム処理における大入賞口開放中処理(ステップS333)の詳細について図59により説明する。
大入賞口開放中処理では、まず、大当り中制御ポインタを+1更新し(ステップS861)、制御ポインタの値が制御ポインタ上限値領域の値に達したかを判定する(ステップS862)。
制御ポインタの値が制御ポインタ上限値領域の値に達していない場合(ステップS862;NO)は、ソレノイド情報設定処理(ステップS869、図56参照)を行う。これにより、更新された制御ポインタに応じた大入賞口の開閉態様が設定されることとなる。そして、大入賞口開放中処理移行設定処理3を行って(ステップS870)、大入賞口開放中処理を終了する。
図61に示すように大入賞口開放中処理移行設定処理3では、処理番号を大入賞口開放中処理にかかる「4」に設定し(ステップS901)、処理番号を特図ゲーム処理番号領域にセーブして(ステップS902)、大入賞口開放中処理移行設定処理3を終了する。
【0314】
図59に戻り、制御ポインタの値が制御ポインタ上限値領域の値に達した場合(ステップS862;YES)は、大入賞口開放情報が上大入賞口短開放パターン(上大入賞口開放パターン1〜3)であるかを判定する(ステップS863)。大入賞口開放情報が上大入賞口短開放パターンである場合(ステップS863;YES)は、大入賞口残存球処理移行設定処理(ステップS868)を行い、大入賞口開放中処理を終了する。この場合は、特別遊技状態の開始から終了まで一連の映像を表示するようになっており、インターバルコマンドやエンディングコマンドは送信しないようになっている。
【0315】
また、大入賞口開放情報が上大入賞口短開放パターンでない場合(ステップS863;NO)は、実行中の特別遊技状態における現在のラウンド数とRWMのラウンド数上限値領域のラウンド数上限値とを比較して現在のラウンドが最終ラウンドであるかを判定する(ステップS864)。そして、最終ラウンドでない場合(ステップS864;NO)は、ラウンド間のインターバルに係るインターバルコマンドを準備し(ステップS865)、コマンド設定処理(ステップS867)を行い、大入賞口残存球処理移行設定処理(ステップS868)を行って、大入賞口開放中処理を終了する。
また、最終ラウンドである場合(ステップS864;YES)は、特別遊技状態の終了の際におけるエンディング表示画面の表示制御等に係るエンディングコマンドを準備し(ステップS866)、コマンド設定処理(ステップS867)を行い、大入賞口残存球処理移行設定処理(ステップS868)を行って、大入賞口開放中処理を終了する。
【0316】
〔大入賞口残存球処理移行設定処理〕
次に、上述の大入賞口開放中処理における大入賞口残存球処理移行設定処理(ステップS868)の詳細について図60により説明する。
大入賞口残存球処理移行設定処理においては、まず、処理番号を大入賞口残存球処理にかかる「5」に設定し(ステップS891)、処理番号を特図ゲーム処理番号領域にセーブする(ステップS892)。その後、残存球処理に要する時間である大入賞口残存球処理時間(例えば1380ms)を特図ゲーム処理タイマ領域にセーブする(ステップS893)。そして、変動入賞装置27の開閉部材27b又は第2変動入賞装置33の開閉部材33aを閉鎖するために、第1大入賞口ソレノイド133又は第2大入賞口ソレノイド134をオフさせるためのオフデータを大入賞口ソレノイド出力データ領域にセーブして(ステップS894)、大入賞口残存球処理移行設定処理を終了する。
【0317】
〔大入賞口残存球処理〕
次に、上述の特図ゲーム処理における大入賞口残存球処理(ステップS334)の詳細について図62により説明する。
大入賞口残存球処理では、まず、実行中の特別遊技状態における今回のラウンド数とRWMのラウンド数上限値領域のラウンド数上限値とを比較して今回のラウンドが上限値に達した(最終ラウンド)か否かをチェックする(ステップS891)。
そして、特別遊技状態における現在のラウンドが最終ラウンドでない場合(ステップS911;NO)は、今回のラウンド数と大入賞口開放情報に対応するインターバル時間を特図ゲーム処理タイマ領域にセーブし(ステップS912)、ファンファーレ/インターバル中処理移行設定処理2(ステップS913)を行って、大入賞口残存球処理を終了する。
なお、インターバル時間は今回のラウンド数と大入賞口開放情報に対応する時間(例えば、上大入賞口開閉パターン1〜3であれば68ms)が設定される。ラウンドとラウンドの間のインターバル期間は、ラウンドの終了から大入賞口残存球処理時間(例えば1380ms)が経過し、さらに該大入賞口残存球処理時間の経過からインターバル時間が経過するまでの期間とされ、例えば、上大入賞口開閉パターン1〜3であれば1448msとなる。
【0318】
一方、特別遊技状態における現在のラウンドが最終ラウンドである場合(ステップS911;YES)は、特別結果が導出された際の確率状態を記憶する特図ゲームモードフラグ退避領域からゲームモードフラグをロードする(ステップS914)。そして、ロードしたフラグと大入賞口開放情報に対応するエンディング時間を特図ゲーム処理タイマ領域にセーブし(ステップS915)、大当り終了処理移行設定処理(ステップS916)を行って、大入賞口残存球処理を終了する。
このように、エンディング期間(エンディング時間)は図柄情報ではなく、大入賞口情報と大当り時のゲームモードフラグに基づいて設定される。
なお、エンディング期間(エンディング時間)は、上記に限らず、例えば図柄情報に基づいて設定してもよい。
【0319】
最終ラウンドの終了から特別遊技状態の終了までのエンディング期間は、最終ラウンドの終了から大入賞口残存球処理時間(例えば1380ms)が経過し、さらに該大入賞口残存球処理時間の経過からエンディング時間が経過するまでの期間とされる。例えば、特別結果が2R確変であって当該特別結果の導出時に時短状態でない場合、すなわち特別結果の導出時に時短状態以外で選択される演出モードであった場合に選択される上大入賞口開閉パターン1であれば、エンディング時間が21020msとされる。よって、エンディング期間の長さは、このエンディング時間の前に大入賞口残存球処理時間として費やされる1380msと合わせて22400msとされ、このエンディング期間において、表示装置41等でエンディング演出が実行される。
また、特別結果が2R確変であって当該特別結果の導出時に時短状態である場合、すなわち特別結果の導出時に時短状態で選択される演出モードであった場合に選択される上大入賞口開閉パターン2であれば、エンディング時間が20msとされる。よって、エンディング期間の長さは、このエンディング時間の前に大入賞口残存球処理時間として費やされる1380msと合わせて1400msとされる。
【0320】
〔ファンファーレ/インターバル中処理移行設定処理2〕
次に、上述の大入賞口残存球処理におけるファンファーレ/インターバル中処理移行設定処理2(ステップS913)の詳細について図63により説明する。
ファンファーレ/インターバル中処理移行設定処理2では、まず、ファンファーレ/インターバル中処理に係る処理番号である「3」を設定し(ステップS921)、特図ゲーム処理番号領域に処理番号をセーブする(ステップS922)。
次に、下大入賞口(変動入賞装置27)の開放終了に関する信号を試験信号出力データ領域にセーブし(ステップS923)、上大入賞口(第2変動入賞装置33)の開放終了に関する信号を試験信号出力データ領域にセーブする(ステップS924)。そして、大入賞口判別フラグ領域をクリアして(ステップS925)、ファンファーレ/インターバル中処理移行設定処理2を終了する。
【0321】
〔大当り終了処理移行設定処理〕
次に、上述の大入賞口残存球処理における大当り終了処理移行設定処理(ステップS916)の詳細について図64により説明する。
大当り終了処理移行設定処理においては、まず、大当り終了処理に係る処理番号として「6」を設定し(ステップS931)、処理番号を特図ゲーム処理番号領域にセーブする(ステップS932)。その後、下大入賞口(変動入賞装置27)の開放終了に関する信号を試験信号出力データ領域にセーブし(ステップS933)、上大入賞口(第2変動入賞装置33)の開放終了に関する信号を試験信号出力データ領域にセーブする(ステップS934)。
【0322】
次に、大入賞口への入賞数を記憶する大入賞口カウント数領域の情報をクリアし(ステップS935)、特別遊技状態のラウンド数を記憶するラウンド数領域の情報をクリアして(ステップS936)、特別遊技状態のラウンド数の上限値を記憶するラウンド数上限値領域の情報をクリアする(ステップS937)。
そして、ラウンド数の上限値判定用のフラグを記憶するラウンド数上限値情報領域の情報をクリアし(ステップS938)、大入賞口の開放情報判定用のフラグを記憶する大入賞口開放情報領域の情報をクリアして(ステップS939)、大入賞口の開閉態様を設定するための大当り中制御ポインタ領域の情報をクリアする(ステップS940)。その後、大当り中制御ポインタのエンド値を記憶する大当り中制御ポインタ上限値領域をクリアして(ステップS941)、大入賞口判別フラグ領域をクリアし(ステップS942)、大当り終了処理移行設定処理を終了する。
【0323】
〔大当り終了処理〕
次に、上述の特図ゲーム処理における大当り終了処理(ステップS335)の詳細についての詳細について図65により説明する。
大当り終了処理では、まず、今回の特別遊技状態を実行する契機となった特別結果の種類に基づき設定される確率変動判定フラグが、特別遊技状態の終了後に高確率状態となる場合に設定される高確率データかを判定する(ステップS951)。
高確率データでない場合(ステップS951;NO)は、大当り終了設定処理1を行う(ステップS95)。これは、高確率突入でない状態であるから、大当り終了後に時短となるモードに移行する処理を設定するものである。
一方、高確率データである場合(ステップS951;YES)は、大当り終了設定処理2を行う(ステップS953)。これは、高確率突入の状態であるから、大当り終了後に確率変動(高確率開始)となるモードに移行する処理を設定するものである。
次いで、特図ゲームモードフラグに対応する確率情報コマンドを準備し(ステップS954)、コマンド設定処理(ステップS955)を行う。
【0324】
次に、遊技制御装置100での演出モードの管理に必要な情報をセーブする処理として、まず、停止図柄パターンに対応する演出モード情報設定テーブルを設定する(ステップS956)。そして、設定された演出モード情報設定テーブルを参照して、特別遊技状態の終了後に設定される演出モードの演出モード番号を取得して演出モード番号領域にセーブする(ステップS957)。さらに、特別遊技状態の終了後に設定される演出モードの演出残り回転数を取得して演出残り回転数領域にセーブし(ステップS958)、特別遊技状態の終了後に設定される演出モードの次モード移行情報を取得して次モード移行情報領域にセーブする(ステップS959)。
その後、新たな演出モード番号に対応するコマンドを準備し(ステップS960)、コマンドを演出モードコマンド領域にセーブして(ステップS961)、コマンド設定処理(ステップS962)を行う。そして、特図普段処理移行設定処理3を行い(ステップS963)、大当り終了処理を終了する。
【0325】
〔大当り終了設定処理1〕
次に、上述の大当り終了処理における大当り終了設定処理1(ステップS952)の詳細について図66により説明する。
ルーチンが開始すると、ステップS971で時短の開始に関する信号を外部情報出力データ領域にセーブする。この領域での時短の開始に関する信号は、例えば大当り2信号ONである。次いで、ステップS972で時短の開始に関する信号を試験信号出力データ領域にセーブする。この領域での時短の開始に関する信号は、以下のものがある。
・特別図柄1変動時間短縮状態信号をON
・特別図柄2変動時間短縮状態信号をON
・普通図柄1高確率状態信号をON
・普通図柄1変動時間短縮状態信号をON
・普通電動役物1開放延長状態信号をON
【0326】
次いで、ステップS973で普図ゲームモードフラグ領域に普図高確率&普電サポートフラグをセーブし、ステップS974で特図ゲームモードフラグ領域に特図低確率&時短フラグをセーブする。
次いで、ステップS975で停電復旧時送信コマンド領域に確率情報コマンド(時短)をセーブし、ステップS976で時間短縮変動回数領域に時間短縮変動回数初期値(例えば70)をセーブしてリターンする。
以上の処理により、特別遊技状態の終了後、特図変動表示ゲームの確率状態が通常確率状態となるとともに時短状態となる。また、時短変動回数領域に時短変動回数初期値(例えば70)をセットすることで、所定回数(例えば70回)の特図変動表示ゲームの実行により時短状態が終了するようになる。
【0327】
〔大当り終了設定処理2〕
次に、上述の大当り終了処理における大当り終了設定処理2(ステップS953)の詳細について図67により説明する。
ルーチンが開始すると、ステップS981で高確率の開始に関する信号を外部情報出力データ領域にセーブする。この領域での高確率の開始に関する信号は、例えば大当り2信号ONである。次いで、ステップS982で高確率の開始に関する信号を試験信号出力データ領域にセーブする。この領域での高確率の開始に関する信号は、以下のものがある。
・特別図柄1高確率状態信号をON
・特別図柄2高確率状態信号をON
・特別図柄1変動時間短縮状態信号をON
・特別図柄2変動時間短縮状態信号をON
・普通図柄1高確率状態信号をON
・普通図柄1変動時間短縮状態信号をON
・普通電動役物1開放延長状態信号をON
【0328】
次いで、ステップS983で普図ゲームモードフラグ領域に普図高確率&普電サポートフラグをセーブし、ステップS984で特図ゲームモードフラグ領域に特図高確率&時短フラグをセーブする。その後、ステップS985で停電復旧時送信コマンド領域に確率情報コマンド(高確率)をセーブし、ステップS986で時間短縮変動回数領域をクリアして、大当り終了設定処理2を終了する。
以上の処理により、特別遊技状態の終了後、特図変動表示ゲームの確率状態が高確率状態となるとともに次回の特別結果態様の導出まで時短状態となる。
すなわち、遊技制御装置100が、特別遊技状態の終了後、予め定められた所定期間にわたり、普通変動入賞装置37を開状態とする期間を延長する特定遊技状態(時短状態)を発生可能な特定遊技状態発生制御手段をなす。
【0329】
〔特図普段処理移行設定処理3〕
次に、上述の大当り終了処理における特図普段処理移行設定処理3(ステップS963)の詳細について図68により説明する。
ルーチンが開始すると、ステップS991で処理番号として「0」(特図普段処理に係る処理番号に相当)を設定し、ステップS992で特図ゲーム処理番号領域に処理番号(ここでは「0」)をセーブする。次いで、ステップS993で大当りの終了に関する信号を外部情報出力データ領域にセーブする。
ここでの大当りの終了に関する信号としては、大当り1信号をOFF、大当り3信号をOFFがある。
【0330】
次いで、ステップS994で大当りの終了に関する信号を試験信号出力データ領域にセーブする。ここでの大当りの終了に関する信号としては、以下のものがある。
・条件装置作動中信号をOFF
・役物連続作動装置作動中信号をOFF
・特別図柄1当り信号又は特別図柄2当り信号をOFF
次いで、ステップS995で確率変動判定フラグ領域をクリアし、ステップS996で大当りのラウンド回数を示すラウンドLEDのポインタ領域をクリアし、ステップS997で遊技状態表示番号領域に時短中の番号をセーブする。そして、ステップS998で下大入賞口不正監視期間フラグ領域に不正監視期間中フラグをセーブし、ステップS999で上大入賞口不正監視期間フラグ領域に不正監視期間中フラグをセーブして、特図普段処理移行設定処理3を終了する。
【0331】
次に、普図ゲーム処理に関するフローチャートの説明に移るが、ここでは、ステップ番号として「ステップB」を用いて説明する。
〔普図ゲーム処理〕
まず、上述のタイマ割込み処理における普図ゲーム処理(ステップS79)の詳細について図69により説明する。
普図ゲーム処理では、ゲートスイッチ122の入力の監視と、普図変動表示ゲームに関する処理全体の制御、普図の表示の設定等を行う。
まず、ゲートスイッチ122からの入力を監視するゲートスイッチ監視処理(ステップB1)を行う。なお、ゲートスイッチ監視処理(ステップB1)の詳細については後述する。
次に、第2始動口スイッチ121からの入力を監視する普電入賞スイッチ監視処理(ステップB2)を行う。なお、普電入賞スイッチ監視処理(ステップB2)の詳細については後述する。
【0332】
次に、普図ゲーム処理タイマが0でなければ−1更新する(ステップB3)。なお、普図ゲーム処理タイマの最小値は0に設定されている。そして、普図ゲーム処理タイマの値が0となったかを判定する(ステップB4)。
普図ゲーム処理タイマの値が0である(ステップB4;YES)、すなわちタイムアップした又はすでにタイムアップしていたと判定すると、普図ゲーム処理番号に対応する処理に分岐させるために参照する普図ゲームシーケンス分岐テーブルをレジスタに設定する処理(ステップB5)を行って、当該テーブルを用いて普図ゲーム処理番号に対応する処理の分岐先アドレスを取得する処理(ステップB6)を行う。
そして、分岐処理終了後のリターンアドレスをスタック領域に退避させる処理(ステップB7)を行った後、ゲーム処理番号に応じてゲーム分岐処理(ステップB8)を行う。
【0333】
ステップB8にて、ゲーム処理番号が「0」の場合は、普図変動表示ゲームの変動開始を監視し、普図変動表示ゲームの変動開始の設定や演出の設定や、普図変動中処理を行うために必要な情報の設定等を行う普図普段処理(ステップB9)を行う。
なお、普図普段処理(ステップB9)の詳細については後述する。
また、ステップB8にて、ゲーム処理番号が「1」の場合は、普図表示中処理を行うために必要な情報の設定等を行う普図変動中処理(ステップB10)を行う。
なお、普図変動中処理(ステップB10)の詳細については後述する。
また、ステップB8にて、ゲーム処理番号が「2」の場合は、普図変動表示ゲームの結果が当りであれば、普通変動入賞装置37がサポート中(時短状態中)であるか否かに応じた普電開放時間の設定や、普図当り中処理を行うために必要な情報の設定等を行う普図表示中処理(ステップB11)を行う。
なお、普図表示中処理(ステップB11)の詳細については後述する。
【0334】
また、ステップB8にて、ゲーム処理番号が「3」の場合は、普図当り中処理の継続、或いは普電残存球処理を行うために必要な情報の設定等を行う普図当り中処理(ステップB12)を行う。
なお、普図当り中処理(ステップB12)の詳細については後述する。
また、ステップB8にて、ゲーム処理番号が「4」の場合は、普図当り終了処理を行うために必要な情報の設定等を行う普電残存球処理(ステップB13)を行う。
なお、普電残存球処理(ステップB13)の詳細については後述する。
また、ステップB8にて、ゲーム処理番号が「5」の場合は、普図普段処理(ステップB9)を行うために必要な情報の設定等を行う普図当り終了処理(ステップB14)を行う。
なお、普図当り終了処理(ステップB14)の詳細については後述する。
その後、普図表示器(一括表示装置35)による普通図柄の変動を制御するための各種テーブルを準備した後(ステップB15)、普図表示器(一括表示装置35)による普通図柄の変動の制御に係る図柄変動制御処理(ステップB16)を行って、普図ゲーム処理を終了する。
【0335】
一方、ステップB4にて、普図ゲーム処理タイマの値が0でない(ステップB4;NO)、すなわちタイムアップしていないと判定すると、処理をステップB15に移行して、それ以降の処理を行う。
【0336】
〔ゲートスイッチ監視処理〕
次に、上述の普図ゲーム処理におけるゲートスイッチ監視処理(ステップB1)の詳細について図70により説明する。
ゲートスイッチ監視処理では、まず、ゲートスイッチ122に入力があるか否かをチェックする(ステップB21)。そして、ゲートスイッチ122に入力があると(ステップB21;YES)判定すると、普図保留数を取得して当該普図保留数が上限値(例えば、4)未満か否かを判定する(ステップB22)。普図保留数が上限値未満である(ステップB22;YES)と判定すると、普図保留数を更新(+1)する処理(ステップB23)を行う。
【0337】
その後、更新後の普図保留数に対応する乱数格納領域のアドレスを算出する処理(ステップB24)を行った後、当り乱数を抽出してRWMの乱数格納領域にセーブする処理(ステップB25)を行って、ゲートスイッチ監視処理を終了する。
また、ステップB21にて、ゲートスイッチ122に入力がないと判定されるか(ステップB21;NO)、或いは、ステップB22にて、普図保留数が上限値未満でないと判定された場合にも(ステップB22;NO)ゲートスイッチ監視処理を終了する。
【0338】
〔普電入賞スイッチ監視処理〕
次に、上述の普図ゲーム処理における普電入賞スイッチ監視処理(ステップB2)の詳細について図71により説明する。
普電入賞スイッチ監視処理では、まず、普図変動表示ゲームが当り状態となって普通変動入賞装置26が所定回数(例えば、3回)の開放動作を実行中であるか(普図当り中か)否かをチェックする(ステップB31)。そして、普図当り中である(ステップB32;YES)と判定すると、第2始動口スイッチ121に入力があるか否かを判定し(ステップB32)、第2始動口スイッチ121に入力がある(ステップB32;YES)と判定すると、普電カウンタのカウント数を更新(+1)する処理(ステップB33)を行う。
【0339】
次に、更新後の普電カウンタのカウント数が上限値(例えば、9)に達したか否かを判定し(ステップB34)、カウント数が上限値に達した(ステップB34;YES)と判定すると、普図当り中制御ポインタ上限値領域からポインタ(当り終了の値)をロードする(ステップB35)。そして、ロードしたポインタを普図当り中制御ポインタ領域にセーブし(ステップB36)、普図ゲーム処理タイマをクリアして(ステップB37)、普電入賞スイッチ監視処理を終了する。
すなわち、普図の当り状態中に上限値以上の普電入賞があった場合は、その時点で普図当り中処理制御ポインタ領域に当り終了の値をセーブし、普図の当り状態が途中で終了するようにする。
【0340】
また、ステップB31にて、普図当り中でないと判定されるか(ステップB31;NO)、或いは、ステップB32にて第2始動口スイッチ121に入力がないと判定されるか(ステップB32;NO)、或いはステップB34にてカウント数が上限値に達していないと判定された場合にも(ステップB34;NO)、普電入賞スイッチ監視処理を終了する。
【0341】
〔普図普段処理〕
次に、上述の普図ゲーム処理における普図普段処理(ステップB9)の詳細について図72により説明する。
普図普段処理では、まず、普図保留数が「0」であるか否かを判定し(ステップB41)、普図保留数が「0」である(ステップB41;YES)と判定すると、ステップB62に移行して、普図普段処理移行設定処理1を行った後、普図普段処理を終了する。普図普段処理移行設定処理1は、次回に普図普段処理を繰り返すための処理を行うもので、詳細は後述する。
【0342】
一方、ステップB41にて普図保留数が0でない(ステップB42;NO)と判定すると、RWMの普図当り乱数格納領域(保留数1用)から当り乱数をロードし(ステップB42)、普図変動表示ゲームにて当り結果となる確率が通常よりも高くされた普図高確率(つまり、普図高確率時)であるか、すなわち時短状態であるかを判定する(ステップB43)。
普図高確率時でない場合(ステップB43;NO)は、当り乱数の値が普図低確率時の判定値である低確率判定値と一致するかを判定する(ステップB44)。当り乱数の値が低確率判定値と一致しない場合(ステップB44;NO)は、当りフラグ領域にはずれ情報をセーブし(ステップB45)、普図停止図柄にはずれ停止図柄番号を設定して(ステップB46)、普図当り乱数格納領域(保留数1用)を0クリアする(ステップB51)。
一方、当り乱数の値が低確率判定値と一致した場合(ステップB44;YES)は、当りフラグ領域に当り情報をセーブし(ステップB49)、普図停止図柄に当り停止図柄番号を設定して(ステップB50)、普図当り乱数格納領域(保留数1用)を0クリアする(ステップB51)。
【0343】
また、ステップB43にて、普図高確率時である場合(ステップB43;YES)は、当り乱数の値が普図高確率時に用いる複数の連続した判定値における下限値である高確率下限判定値未満であるかを判定し(ステップB47)、当り乱数の値が高確率下限判定値未満でない場合(ステップB47;NO)は、当り乱数の値が普図高確率時に用いる複数の連続した判定値における上限値である高確率上限判定値より大きいかを判定する(ステップB48)。
【0344】
当り乱数の値が高確率上限判定値より大きくない場合(ステップB48;NO)、すなわち当りである場合は、当りフラグ領域に当り情報をセーブし(ステップB49)、普図停止図柄に当り停止図柄番号を設定して(ステップB50)、普図当り乱数格納領域(保留数1用)を0クリアする(ステップB51)。
また、ステップB47にて、当り乱数の値が高確率下限判定値未満である場合(ステップB47;YES)や、ステップB48にて、当り乱数の値が上限判定値より大きい場合(ステップB48;YES)、すなわちはずれの場合は、当りフラグ領域にはずれ情報をセーブし(ステップB45)、普図停止図柄にはずれ停止図柄番号を設定して(ステップB46)、普図当り乱数格納領域(保留数1用)を0クリアする(ステップB51)。すなわち、当り乱数の値が一致することで普図の当りと判定する判定値は、普図低確率時では一つの値であり、普図高確率時では複数の連続した値となっている。
【0345】
普図当り乱数格納領域(保留数1用)を0クリア(ステップB51)した後、停止図柄番号を試験信号出力データ領域にセーブする(ステップB52)。そして、停止図柄に対応する飾り普図変動パターンコマンドを準備し(ステップB53)、コマンド設定処理(ステップB54)を行う。これにより、表示装置41等において普図変動表示ゲームに対応した演出を行うことが可能となる。
その後、普図当り乱数格納領域をシフトし(ステップB55)、シフト後の空き領域を0クリアして(ステップB56)、普図保留数を−1更新する(ステップB57)。即ち、最も古い普図保留数1に関する普図変動表示ゲームが実行されることに伴い、普図保留数1以降に保留となっている普図保留数2〜4の順位を1つずつ繰り上げる処理を行う。この処理により、普図当り乱数格納領域の普図保留数2用から普図保留数4用の値が、普図当り乱数格納領域の普図保留数1用から普図保留数3用に移動することとなる。そして、普図当り乱数格納領域の普図保留数4用の値がクリアされて、普図保留数が1デクリメントされる。
【0346】
次に、普電サポート中(時短状態中)であるかを判定し(ステップB58)、普電サポート中でない場合(ステップB58;NO)は、普電サポートなし時の変動時間(例えば、10秒)を設定する(ステップB59)。また、普電サポート中である場合(ステップB58;YES)は、普電サポート時の普図変動時間(例えば、1秒)を設定する(ステップB60)。そして、普図変動中処理移行設定処理(ステップB61)を行って、普図普段処理を終了する。
【0347】
〔普図普段処理移行設定処理1〕
次に、上述の普図普段処理における普図普段処理移行設定処理1(ステップB62)の詳細について図73により説明する。
ルーチンが開始すると、ステップB71で普図普段処理に移行するための処理番号として「0」(普図普段処理に係る処理番号に相当)を設定し、ステップB72で普図ゲーム処理番号領域に処理番号(ここでは「0」)をセーブする。次いで、ステップB73で普電不正監視期間フラグ領域に不正監視期間中フラグをセーブしてリターンする。これにより、次回に普図普段処理に移行する。
【0348】
〔普図変動中処理移行設定処理〕
次に、上述の普図普段処理における普図変動中処理移行設定処理(ステップB61)の詳細について図74により説明する。
ルーチンが開始すると、ステップB81で処理番号として「1」(普図変動中処理に係る処理番号に相当)を設定し、ステップB82で普図ゲーム処理番号領域に処理番号(ここでは「1」)をセーブする。次いで、ステップB83で普図変動開始に関する信号(例えば、普通図柄1変動中信号をON)を試験信号出力データ領域にセーブし、ステップB84で普図変動制御フラグ領域に変動中フラグをセーブする。次いで、ステップB85で普図表示器(一括表示装置35の普図表示LED)の点滅周期のタイマの初期値である点滅制御タイマ初期値(例えば200ms)を普図点滅制御タイマ領域にセーブして、普図変動中処理移行設定処理を終了する。これにより、次回に普図変動中処理に移行する。
【0349】
〔普図変動中処理〕
次に、上述の普図ゲーム処理における普図変動中処理(ステップB10)の詳細について図75により説明する。
ルーチンが開始すると、ステップB91で普図表示中処理移行設定処理を行う。これは、普図表示中処理に移行するための設定を行うもので、詳細は後述する。この処理を経ると、リターンする。
【0350】
〔普図表示中処理移行設定処理〕
次に、上述の普図変動中処理における普図表示中処理移行設定処理(ステップB91)の詳細について図76により説明する。
ルーチンが開始すると、ステップB101で処理番号として「2」(普図表示中処理に係る処理番号に相当)を設定し、ステップB102で普図ゲーム処理番号領域に処理番号(ここでは「2」)をセーブする。次いで、ステップB103で普図表示時間を設定(例えば、600ms)する。次いで、ステップB104で普図ゲーム処理タイマ領域に普図表示時間をセーブし、ステップB105で普図変動終了に関する信号(例えば、普通図柄1変動中信号をOFF)を試験信号出力データ領域にセーブする。次いで、ステップB106で普図変動制御フラグ領域に停止フラグをセーブしてリターンする。これにより、次回に普図表示中処理に移行する。
【0351】
〔普図表示中処理〕
次に、上述の普図ゲーム処理における普図表示中処理(ステップB11)の詳細について図77により説明する。
普図表示中処理では、まず、普図普段処理にて設定された当りフラグ(当たり情報又ははずれ情報)をロードして(ステップB111)、RWMの当りフラグ領域をクリアする処理(ステップB112)を行う。
次に、ロードされた当りフラグが当りか否かを判定し(ステップB113)、当りフラグが当りでない(ステップB113;NO)と判定すると、ステップB122に分岐して普図普段処理移行設定処理1(図73で説明)を行い、普図表示中処理を終了する。
【0352】
一方、ステップB113にて、当りフラグが当りである(ステップB113;YES)と判定すると、普電サポート中(時短状態中)かを判定する処理(ステップB114)を行う。
そして、普電サポート中でない場合(ステップB114;NO)は、普電サポートなし時の普電開放時間(例えば、100ms)を普図ゲーム処理タイマ領域にセーブする(ステップB115)。さらに、普電サポートなし時の当り開始ポインタ値(制御ポインタ値)を普図当り中制御ポインタ領域にセーブし(ステップB116)、普電サポートなし時の当り終了ポインタ値(制御ポインタ値)を普図当り中制御ポインタ上限値領域にセーブする(ステップB117)。これにより、通常動作状態中での普通変動入賞装置26の開放態様が設定され、例えば2回の開放が可能となる。その後、普図当り中処理移行設定処理(ステップB121)を行う。これは、普図当り中処理に移行するための設定を行うもので、詳細は後述する。この処理を経ると、リターンする。
なお、普電サポートなし時の当り開始ポインタ値(制御ポインタ値)は「0」、当り終了ポインタ値は「2」に設定され、普電サポート時の当り開始ポインタ値(制御ポインタ値)は「3」、当り終了ポインタ値は「9」に設定されている。
【0353】
一方、普電サポート中である場合(ステップB114;YES)は、普電サポート時の普電開放時間(例えば、1352ms)を普図ゲーム処理タイマ領域にセーブする(ステップB118)。さらに、普電サポート時の当り開始ポインタ値(制御ポインタ値)を普図当り中制御ポインタ領域にセーブし(ステップB119)、普電サポート時の当り終了ポインタ値(制御ポインタ値)を普図当り中制御ポインタ上限値領域にセーブする(ステップB120)。これにより、時短状態中での普通変動入賞装置26の開放態様が設定され、例えば4回の開放が可能となる。その後、普図当り中処理移行設定処理(ステップB122)を行って、普図表示中処理を終了する。
【0354】
〔普図当り中処理移行設定処理〕
次に、上述の普図表示中処理における普図当り中処理移行設定処理(ステップB121)の詳細について図78により説明する。
ルーチンが開始すると、ステップB131で処理番号として「3」(普図当り中処理に係る処理番号に相当)を設定し、ステップB132で普図ゲーム処理番号領域に処理番号(ここでは「3」)をセーブする。次いで、ステップB133で普図当りの開始に関する信号(例えば、普通図柄1当り信号をON)と普電作動開始に関する信号(例えば、普通電動役物1作動中信号をON)を試験信号出力データ領域にセーブする。次いで、ステップB134で普電ソレノイド出力データ領域にONデータをセーブし、ステップB135で普通変動入賞装置26への入賞数を記憶する普電カウント数領域をクリアする、次いで、ステップB136で普電不正監視期間における普通変動入賞装置26への入賞数を記憶する普電不正入賞数領域をクリアし、ステップB137で普電不正監視期間フラグ領域に不正監視期間外フラグ(普通変動入賞装置26の不正監視期間外を規定するフラグ)をセーブしてリターンする。これにより、次回は普図当り中処理に移行する。
【0355】
〔普図当り中処理〕
次に、上述の普図ゲーム処理における普図当り中処理(ステップB12)の詳細について図79により説明する。
普図当り中処理では、まず、普図当り中処理制御ポインタをロードして準備した後(ステップB141)、ロードされた普図当り中制御ポインタの値が普図当り中制御ポインタ上限値領域の値(当り終了の値:例えば「4」等))に達したかを判定する(ステップB142)。
そして、普図当り中制御ポインタの値が普図当り中制御ポインタ上限値領域の値に達していない場合(ステップB142;NO)は、普図当り中制御ポインタを+1更新し(ステップB143)、普電作動移行設定処理(ステップB144)を行って普図当り中処理を終了する。
また、普図当り中制御ポインタの値が普図当り中制御ポインタ上限値領域の値(当り終了の値)に達した場合(ステップB142;YES)は、ステップB143における普図当り中処理制御ポインタ領域を更新(+1)する処理を行わずに、普電作動移行設定処理(ステップB144)を行って普図当り中処理を終了する。
【0356】
〔普電作動移行設定処理〕
次に、上述の普図当り中処理における普電作動移行設定処理(ステップB144)の詳細について図80により説明する。
普電作動移行設定処理は、普通変動入賞装置26を開閉するための普電ソレノイド132の駆動制御を行う処理であり、制御ポインタの値に応じて処理を分岐するようにしている。
ルーチンが開始すると、ステップB151で制御ポインタによる分岐を行う。ここでは、ステップB141でロードして準備された制御ポインタの値に応じて分岐する。具体的には、ステップB151で制御ポインタの値が0,3,5,7の何れかであった場合は、ステップB152へ移行して普通変動入賞装置26の閉塞を制御するため、制御ポインタに対応する普通変動入賞装置26の閉塞後のウェイト時間(例えば、2800ms又は1000ms)を普図ゲーム処理タイマ領域にセーブし、ステップB153で普電ソレノイド132をオフさせるために普電ソレノイド出力データ領域にオフデータを設定して、普電作動移行設定処理を終了する。これにより、普通変動入賞装置26の開放後の閉塞時間が上記ウエイト時間となり、その期間は普通変動入賞装置26が閉塞することになる。
【0357】
一方、ステップB151で制御ポインタの値が1,4,6,8の何れかであった場合は、ステップB154へ移行して普通変動入賞装置26の開放を制御するため、制御ポインタに対応する普通変動入賞装置26の開放時間である普電開放時間(例えば、100ms、5200ms、1352msの何れか)を普図ゲーム処理タイマ領域にセーブし、ステップB155で普電ソレノイド132をオンさせるために普電ソレノイド出力データ領域にオンデータを設定して、普電作動移行設定処理を終了する。これにより、普通変動入賞装置26の開放時間が上記普電開放時間となり、その期間は普通変動入賞装置26が開放することになる。
【0358】
また、ステップB151で制御ポインタの値が2,9の何れかであった場合は、ステップB156へ移行して普通変動入賞装置26の開放制御を終了して普電残存球処理(ステップB13)を行うために、処理番号として「4」を設定する。次いで、ステップB157で普図ゲーム処理番号領域に処理番号(ここでは「4」)をセーブする。次いで、ステップB158で普電残存球処理時間(例えば600ms)を普図ゲーム処理タイマ領域にセーブし、その後、ステップB159で普電ソレノイド132をオフさせるために普電ソレノイド出力データ領域にオフデータをセーブし、普電作動移行設定処理を終了する。
【0359】
〔普電残存球処理〕
次に、上述の普図ゲーム処理における普電残存球処理(ステップB13)の詳細について図81により説明する。
ルーチンが開始すると、ステップB161で普図当り終了処理移行設定処理を行う。これは、普図当り終了処理に移行するための設定を行うもので、詳細は後述する。この処理を経ると、リターンする。
【0360】
〔普図当り終了処理移行設定処理〕
次に、上述の普電残存球処理における普図当り終了処理移行設定処理(ステップB161)の詳細について図82により説明する。
ルーチンが開始すると、ステップB171で処理番号として「5」(普図当り終了処理に係る処理番号に相当)を設定し、ステップB172で普図ゲーム処理番号領域に処理番号(ここでは「5」)をセーブする。次いで、ステップB173で普図エンディング時間(例えば、100ms)を普図ゲーム処理タイマ領域にセーブし、ステップB174で普通変動入賞装置26の作動終了に関する信号(例えば、普通電動役物1作動中信号をOFF)を試験信号出力データ領域にセーブする。次いで、ステップB175で普通変動入賞装置26への入賞数を計数する普電カウント数領域をクリアする。そして、ステップB176で普図当り中制御ポインタ領域をクリアし、ステップB177で普図当り中制御ポインタ上限値領域をクリアして、普図当り終了処理移行設定処理を終了する。これにより、次回は普図当り終了処理に移行する。
【0361】
〔普図当り終了処理〕
次に、上述の普図ゲーム処理における普図当り終了処理(ステップB14)の詳細について図83により説明する。
ルーチンが開始すると、ステップB181で普図普段処理移行設定処理2を行う。これは、普図普段処理に移行するための設定を行うもので、詳細は後述する。この処理を経ると、リターンする。
【0362】
〔普図普段処理移行設定処理2〕
次に、上述の普図当り終了処理における普図普段処理移行設定処理2(ステップB181)の詳細について図84により説明する。
ルーチンが開始すると、ステップB191で処理番号として「0」(普図普段処理に係る処理番号に相当)を設定し、ステップB192で普図ゲーム処理番号領域に処理番号(ここでは「0」)をセーブする。次いで、ステップB193で普図当りの終了に関する信号(例えば、普通図柄1当り信号をOFF)を試験信号出力データ領域にセーブする。次いで、ステップB194で普電不正監視期間フラグ領域に不正監視期間中フラグ(普通変動入賞装置26の不正監視期間を規定するフラグ)をセーブしてリターンする。これにより、次回は普図普段処理に移行する。
【0363】
以上で、普図ゲーム処理に関するフローチャートを説明したので、次に、上述のタイマ割込み処理におけるステップS80以降のサブルーチンの説明に移る。
ここでは、ステップ番号として「ステップC」を用いて説明する。
〔セグメントLED編集処理〕
まず、上述のタイマ割込み処理におけるセグメントLED編集処理(ステップS80)の詳細について図85により説明する。
セグメントLED編集処理は一括表示装置35(図2、4、5)に設けられたセグメントLEDに関する処理を行うものであり、一括表示装置35は前述したように、普図の表示や特図の表示、さらには特図や普図の始動記憶の保留表示(特図保留表示、普図保留表示)や、遊技状態の表示を行うようになっている。
これらの表示は、例えばLEDを発光源とする複数の表示器(例えば、1個のランプや7セグメント表示器)によって行われる構成である。より具体的には、例えば特図1保留表示器、特図2保留表示器、普図保留表示器、第1遊技状態表示部、第2遊技状態表示部、エラー表示部、ラウンド表示部などの機能を有するセグメントLEDで構成され、それらの駆動に関する設定等を行うのがセグメントLED編集処理である。
【0364】
セグメントLED編集処理では、まず、普図保留表示器での表示態様が規定された普図保留数テーブルを設定し(ステップC1)、普図保留数に対応する表示データを取得して普図保留表示器のセグメント領域(例えば、普図保留表示器のセグメント領域)にセーブする(ステップC2)。次に、特図1保留表示器での表示態様が規定された特図1保留数テーブルを設定し(ステップC3)、特図1保留数に対応する表示データを取得して特図1保留表示器のセグメント領域(例えば、特図1保留表示器のセグメント領域)にセーブする(ステップC4)。
その後、特図2保留表示器での表示態様が規定された特図2保留数テーブルを設定し(ステップC5)、特図2保留数に対応する表示データを取得して特図2保留表示器のセグメント領域(例えば、特図2保留表示器のセグメント領域)にセーブする(C6)。さらに、ラウンド表示部での表示態様が規定されたラウンド表示LED表示テーブルを設定し(C7)、ラウンド表示LED出力ポインタに対応する表示データを取得してラウンド表示部のセグメント領域(例えば、ラウンド表示部のセグメント領域)にセーブする(ステップC8)。
【0365】
次に、一括表示装置35における第1遊技状態表示部及び第2遊技状態表示部での表示態様が規定された遊技状態表示テーブルを設定し(ステップC9)、遊技状態表示番号に対応する表示データを取得して各遊技状態表示部のセグメント領域(例えば、第1遊技状態表示部若しくは第2遊技状態表示部のセグメント領域)にセーブする(ステップC10)。その後、停電復旧時に大当りの確率状態が高確率状態となっていることの報知に係る高確率報知フラグがオンであるかを判定する(ステップC11)。そして、高確率報知フラグがオンである場合(ステップC11;YES)、すなわち高確率状態の報知を行っている状態である場合は、セグメントLED編集処理を終了する。
また、高確率報知フラグがオンでない場合(ステップC11;NO)は、高確率報知LEDのオフデータを第3遊技状態表示部のセグメント領域(例えば、エラー表示部のセグメント領域)にセーブして(ステップC12)、セグメントLED編集処理を終了する。
【0366】
〔磁石不正監視処理〕
次に、上述のタイマ割込み処理における磁石不正監視処理(ステップS81)の詳細について図86により説明する。
磁石不正監視処理は、磁気センサ126からの検出信号をチェックして異常がないか判定して不正報知の開始や終了の設定等を行うものである。
磁石不正監視処理では、まず、磁気センサ126から出力されて第3入力ポート162(入力ポート3)に取り込まれる検出信号の状態から、磁気センサ126がオン、すなわち異常な磁気を検出した状態であるかを判定する(ステップC21)。なお、図86のステップC21では磁石不正検出のための処理であるので、「磁石センサはオン?」という表記にしている。
磁気センサ126がオンである場合(ステップC21;YES)、すなわち異常な磁気を検出した場合は、異常な磁気の検出期間を計時する磁石不正監視タイマを+1更新して(ステップC22)、当該タイマがタイムアップしたかを判定する(ステップC23)。
【0367】
磁石不正監視タイマがタイムアップした場合(ステップC23;YES)、すなわち異常な磁気を一定期間継続して検出した場合は、磁石不正監視タイマをクリアし(ステップC24)、磁石不正報知タイマ初期値(例えば、60000ms)を磁石不正報知タイマ領域にセーブする(ステップC25)。そして、磁石不正報知のコマンドを準備し(ステップC26)、磁石不正フラグとして磁石不正発生フラグを準備して(ステップC27)、準備した磁石不正フラグが磁石不正フラグ領域の値と一致するかを判定する(ステップC33)。すなわち、磁気センサ126が一定期間(例えば、8回の割込み)連続してオンであった場合に異常が発生していると判定するようにしている。
すなわち、磁気センサ検出信号の入力が8回割込みして連続で行われることで、異常発生と判断される。これは、磁気センサ126のセンシングが4msであり、32msで不正発生と判断するため、8回割込みして磁気センサ検出信号のON入力があれば、不正と判定できるからである。
【0368】
一方、磁気センサ126がオンでない場合(ステップC21;NO)、すなわち異常な磁気を検出していない場合は、磁石不正監視タイマをクリアし(ステップC28)、磁石不正の報知時間を規定する磁石不正報知タイマが0でなければ−1更新する(ステップC29)。なお、磁石不正報知タイマの最小値は0に設定されている。次いで、磁石不正報知タイマの値が0であるかを判定する(ステップC30)。なお、磁石不正監視タイマがタイムアップしていない場合(ステップC23;NO)もステップC29の処理に移行する。
【0369】
そして、磁石不正報知タイマの値が0でない場合(ステップC30;NO)、すなわちタイムアップしていない場合は、磁石不正監視処理を終了する。
また、磁石不正報知タイマの値が0である場合(ステップC30;YES)、すなわちタイムアップした又はすでにタイムアップしていた場合であって、不正報知の期間が終了した場合又は当初から不正報知が行われていない場合は、磁石不正報知終了のコマンドを準備する(ステップC31)。さらに、磁石不正フラグとして磁石不正解除フラグを準備して(ステップC32)、準備した磁石不正フラグが磁石不正フラグ領域の値と一致するかを判定する(ステップC33)。
【0370】
そして、準備した磁石不正フラグが磁石不正フラグ領域の値と一致する場合(ステップC33;YES)は、磁石不正監視処理を終了する。また、値が一致しない場合(ステップC33;NO)は、準備した磁石不正フラグを磁石不正フラグ領域にセーブし(ステップC34)、コマンド設定処理を行い(ステップC35)、磁石不正監視処理を終了する。
ここで、図86において矢印は磁石不正が無く、正常の場合の処理ルート(正常ルート)を示している。すなわち、正常の場合にはステップC21、ステップC28、ステップC29、ステップC30、ステップC31、ステップC32、ステップC33、RETという処理ルートを経ることになる。通常は、この正常ルートが繰り返される。
【0371】
〔電波不正監視処理〕
次に、上述のタイマ割込み処理における電波不正監視処理(ステップS82)の詳細について図87により説明する。
電波不正監視処理は、電波センサ127からの検出信号に基づき異常の有無を判定し不正報知の開始や終了の設定等を行うものである。
電波不正監視処理では、まず、電波センサ127から出力されて近接I/F163を経由して第3入力ポート162(入力ポート3)に取り込まれる検出信号の状態から、電波センサ127がオン、すなわち異常な電波を検出した状態であるかを判定する(ステップC41)。電波センサがオンである場合(ステップC41;YES)、すなわち異常な電波を検出した場合は、電波不正報知タイマ初期値を電波不正報知タイマ領域にセーブする(ステップC42)。
【0372】
そして、電波不正報知のコマンドを準備し(ステップC43)、電波不正フラグとして電波不正発生フラグを準備して(ステップC44)、準備した電波不正フラグが電波不正フラグ領域の値と一致するかを判定する(ステップC49)。すなわち、電波不正の場合は磁気不正の場合と違い、異常な電波を検出した時点で異常が発生していると判定するようにしている。
【0373】
一方、電波センサがオンでない場合(ステップC41;NO)、すなわち異常な電波を検出していない場合は、電波不正の報知時間を規定する電波不正報知タイマが0でなければ−1更新する(ステップC45)。なお、電波不正報知タイマの最小値は0に設定されている。そして、電波不正報知タイマの値が0であるかを判定する(ステップC46)。
電波不正報知タイマの値が0でない場合(ステップC46;NO)、すなわちタイムアップしていない場合は、電波不正監視処理を終了する。また、電波不正報知タイマの値が0である場合(ステップC46;YES)、すなわちタイムアップした又はすでにタイムアップしていた場合であって、不正報知の期間が終了した場合又は当初から不正報知が行われていない場合は、電波不正報知終了のコマンドを準備し(ステップC47)、電波不正フラグとして電波不正解除フラグを準備して(ステップC48)、準備した電波不正フラグが電波不正フラグ領域の値と一致するかを判定する(ステップC49)。
【0374】
そして、準備した電波不正フラグが電波不正フラグ領域の値と一致する場合(ステップC49;YES)は、電波不正監視処理を終了する。また、値が一致しない場合(ステップC49;NO)は、準備した電波不正フラグを電波不正フラグ領域にセーブし(ステップC50)、コマンド設定処理を行い(ステップC51)、電波不正監視処理を終了する。
ここで、図87において矢印は電波不正が無く、正常の場合の処理ルート(正常ルート)を示している。すなわち、正常の場合にはステップC41、ステップC45、ステップC46、ステップC47、ステップC48、ステップC49、RETという処理ルートを経ることになる。通常は、この正常ルートが繰り返される。
【0375】
〔外部情報編集処理〕
次に、上述のタイマ割込み処理における外部情報編集処理(ステップS83)の詳細について図88図89により説明する。
外部情報編集処理では、払出コマンド送信処理(ステップS74)、入賞口スイッチ/エラー監視処理(ステップS77)、磁石不正監視処理(ステップS81)及び電波不正監視処理(ステップS82)での監視結果に基づいて、情報収集端末や遊技場内部管理装置等の外部装置や試射試験装置に出力する情報を作成して出力バッファにセットする処理等を行う。
【0376】
図88に示すように、外部情報編集処理では、まず、払出予定の賞球数に関する情報を設定するメイン賞球信号編集処理(ステップC61)を行い、始動口の入賞信号を編集する始動口信号編集処理(ステップC62)を行う。次いで、ステップC63で固有情報信号編集処理を行う。これは、主基板の固有情報(固有ID)を取得するものであり、詳細は後述する。
次いで、ステップC64でセキュリティ信号制御タイマが0でなければ「−1」更新する。なお、セキュリティ信号制御タイマの最小値は0に設定されている。そして、セキュリティ信号制御タイマの値が0となったかを判定する(ステップC65)。セキュリティ信号制御タイマは、RAMクリアによる電源投入を行った時にセキュリティ信号を所定時間オン出力するためのものであり、ステップS27にてタイマ初期値(例えば256ms)がセットされる。
ステップC65でセキュリティ信号制御タイマの値が0である場合、すなわちタイムアップした又はすでにタイムアップしていた場合は、ステップC66に進んで固有情報出力要求済みか否かを判定する。ここでの固有情報とは、主基板の固有情報、つまり固有IDのことである。
ステップC66で固有情報出力要求済みでなければ、ステップC67に進んで電源投入での固有情報信号の出力要求フラグをセットし、ステップC68で電源投入での固有情報信号の出力要求済みフラグをセットする。これにより、パチンコ機1の電源投入時(例えば、開店時)において固有ID(主基板の固有情報)が外部に出力されることになる。ステップC68を経ると、ステップC69でセキュリティ信号のオンデータを外部情報出力データ領域にセーブした後、ステップC72以降の処理に進む。
【0377】
また、ステップC66で既に固有情報出力要求済みであれば、ステップC67、68をジャンプしてステップC69に進む。
一方、ステップC65でセキュリティ信号制御タイマが既にタイムアップ又は「−1」更新後にタイムアップしていれば、ステップC70に分岐して電源投入での固有情報信号の出力要求済みフラグをクリアし、ステップC71でセキュリティ信号のオフデータを外部情報出力データ領域にセーブした後、ステップC72以降の処理に進む。すなわち、セキュリティ信号制御タイマが既にタイムアップしていれば、電源投入に関連するセキュリティ信号の外部出力の設定は行なわれない。
【0378】
次いで、ステップC72、73、74、75、76で、磁石不正発生中か、電波不正発生中か、下大入賞口不正発生中か、上大入賞口不正発生中か、普電不正発生中かをそれぞれ判別する。これらの処理では、図24の「エラーチェック処理」での監視結果に基づいた判定を行う。すなわち、図24の「エラーチェック処理」でエラーフラグ(エラー発生フラグ)が立っているか否かに基づいて上記の各不正発生中かを判断する。
何れか1つ以上の不正が発生していれば、ステップC77に進んでセキュリティ信号のオンデータを外部情報出力データ領域にセーブし、さらにステップC78で遊技機エラー状態信号のオンデータを試験信号出力データ領域にセーブして、ステップC80に進む。これにより、不正や遊技機エラー状態が外部に出力されることになる。
一方、ステップC72でNO、ステップC73でNO、ステップC74でNO、ステップC75でNO、ステップC76でNOのとき、すなわち、ステップC72、73、74、75、76で全てNOのときは、ステップC76からステップC79に分岐して遊技機エラー状態信号のオフデータを試験信号出力データ領域にセーブした後、ステップC80以降の処理に進む。
【0379】
ステップC78あるいはステップC79を経ると、次いで、ステップC80に進み、ガラス枠開放エラー中か否かを判別する。この処理では、直接にガラス枠開放検出スイッチ211の信号に基づいてガラス枠5(扉)の開放を監視するのではなく、図24の「エラーチェック処理」での監視結果に基づいた判定を行う。すなわち、図24の「エラーチェック処理」でエラーフラグ(エラー発生フラグ)が立っているか否かに基づいてガラス枠開放エラー中かを判断する。
ガラス枠開放エラー中でなければ、ステップC81に進んで前面枠開放エラー中か否かを判別する。この処理では、図24の「エラーチェック処理」での監視結果に基づいた判定を行う。
前面枠開放エラー中であれば、ステップC82に進む。また、ステップC80でガラス枠開放エラー中である場合もステップC82に進む。
すなわち、ガラス枠開放エラー中又は前面枠開放エラー中であれば、ステップC82に進み、ステップC82において固有情報出力要求済みか否かを判定し、NO(要求済みでない)であれば、ステップC83でガラス枠・前面枠開放での固有情報信号の出力要求フラグをセットし、ステップC84でガラス枠・前面枠開放での固有情報信号の出力要求済みフラグをセットした後、ステップC85に進む。したがって、このときはパチンコ機1のガラス枠5又は前面枠4が開放されたとき(例えば、不正な開放も含む)に、固有ID(主基板の固有情報)が外部に出力されることになる。
一方、ステップC82で固有情報出力要求済みであれば、ステップC85にジャンプする。
【0380】
ステップC84又はステップC82からステップC85に進むと、ステップC85で扉・枠開放信号(つまり、ガラス枠5(扉)・前面枠4(枠)の開放信号のこと)のオンデータを外部情報出力データ領域にセーブし、さらにステップC86で遊技機エラー状態信号のオンデータを試験信号出力データ領域にセーブして、ステップC89に進む。これは、扉又は枠の開放というイベントが発生したときに、エラー信号を外部に出力するためである。
一方、ステップC81でNOのとき、つまりガラス枠開放エラー中又は前面枠開放エラー中でなければ、扉又は枠の開放というイベントが発生しないので、そのような出力データの設定は行う必要がないことから、ステップC87にガラス枠・前面枠枠開放での固有情報信号の出力要求済みフラグをクリアし、ステップC88で扉・枠開放信号のオフデータを外部情報出力データ領域にセーブした後、ステップC89に進む。
【0381】
ステップC89では、大当り動作中か否かを判定し、大当り動作中であれば、ステップC90で固有情報出力要求済みか否かを判定し、NO(要求済みでない)であれば、ステップC91で大当りでの固有情報信号の出力要求フラグをセットし、ステップC92で大当りでの固有情報信号の出力要求済みフラグをセットした後、ステップC93に進む。したがって、このときはパチンコ機1の大当りが発生したときに、固有ID(主基板の固有情報)が外部に出力されることになる。
一方、ステップC90で大当り時に固有情報出力要求済みであれば、ステップC91、92をジャンプしてステップC93に進む。
ステップC93では、大当り1信号のオンデータを外部情報出力データ領域にセーブし、ステップC94に進む。
【0382】
一方、ステップC89で大当り動作中でないとき(NO)には、ステップC95に分岐して大当りでの固有情報信号の出力要求済みフラグをクリアし、ステップC96で大当り1信号のオフデータを外部情報出力データ領域にセーブし、ステップC94に進む。したがって、大当りが発生しないときは、固有ID(主基板の固有情報)の外部への出力はない。
ステップC93又はステップC96からステップC94に進むと、ステップC94で図柄確定回数制御タイマが0でなければ、(−1)更新し、続くステップC97で図柄確定回数制御タイマが0(タイムアップした)か否かをチェックする。図柄確定回数制御タイマは、図柄確定回数信号のオン時間を制御するためのタイマである。
図柄確定回数制御タイマがタイマアップしていなければ(NO)、ステップC99に進んで、図柄確定回数信号のオンデータを外部情報出力データ領域にセーブしてリターンする。そして、ルーチンを繰り返し、ステップC97で図柄確定回数制御タイマがタイムアップした(YES)と判定すると、ステップC98に進み、図柄確定回数信号のオフデータを外部情報出力データ領域にセーブして外部情報編集処理を終了する。
このようにして、特図の図柄が変動を終了する度に外部情報として出力されることになる。
【0383】
〔メイン賞球信号編集処理〕
次に、上述の外部情報編集処理におけるメイン賞球信号編集処理(ステップC61)の詳細について図90により説明する。
メイン賞球信号編集処理は、入賞口への入賞により発生した賞球数(払出予定数)が所定数(ここでは10個)になる毎に生成されるメイン賞球信号を外部装置へ出力する処理である。
メイン賞球信号編集処理では、まず、メイン賞球信号出力制御タイマが0でなければ−1更新する(ステップC101)。なお、メイン賞球信号出力制御タイマの最小値は0に設定されている。そして、メイン賞球信号出力制御タイマの値が0であるかを判定する(ステップC102)。メイン賞球信号出力制御タイマの値が0である場合(ステップC102;YES)は、メイン賞球信号出力回数が0であるかを判定する(ステップC103)。
【0384】
そして、メイン賞球信号出力回数が0でない場合(ステップC103;NO)は、メイン賞球信号出力回数を−1更新し(ステップC104)、メイン賞球信号出力制御タイマ領域にメイン賞球信号出力制御タイマ初期値をセーブする(ステップC105)。このメイン賞球信号出力制御タイマ初期値は、メイン賞球信号のオン状態(例えば、ハイレベル)の時間(例えば、128ms)とオフ状態(例えば、ロウレベル)の時間(例えば、64ms)を加算した時間(例えば、192ms)となっている。その後、メイン賞球信号をオン状態にするオンデータをRWMの外部情報出力データ領域にセーブして(ステップC107)、メイン賞球信号編集処理を終了する。
また、メイン賞球信号出力回数が0である場合(ステップC103;YES)は、外部装置用のメイン賞球信号をオフ状態にするオフデータをRWMの外部情報出力データ領域にセーブして(ステップC108)、メイン賞球信号編集処理を終了する。
【0385】
一方、メイン賞球信号出力制御タイマの値が0でない場合(ステップC102;NO)は、メイン賞球信号出力制御タイマが出力オン区間中であるかを判定する(ステップC106)。なお、メイン賞球信号出力制御タイマが出力オン区間中であるとは、メイン賞球信号出力制御タイマの値が所定時間(例えば64ms)以上であることである。
メイン賞球信号出力制御タイマが出力オン区間中である場合(ステップC106;YES)は、処理をステップC107に移行する。また、メイン賞球信号出力制御タイマが出力オン区間中でない場合(ステップC106;NO)は、外部装置用のメイン賞球信号をオフ状態にするオフデータをRWMの外部情報出力データ領域にセーブして(ステップC108)、メイン賞球信号編集処理を終了する。
このように、メイン賞球信号は遊技制御装置100からは賞球の払出予定数が10個毎に1パルスのメイン賞球信号が外部装置(例えば、管理装置140)へ出力される。なお、払出制御装置200からは10個払出毎に生成される1パルスの賞球信号が外部装置(例えば、管理装置140)へ出力されることになる。
すなわち、遊技制御装置100(主基板)で10個払出予定毎(払出コマンドを送信する毎)にメイン賞球数信号出力回数を+1更新し(払出コマンド送信処理内のサブルーチン)、その後、更新(設定)されている出力回数分だけメイン賞球数信号が出力される。そして、上記のように10個払出予定毎に出力されるメイン賞球信号に対し、払出制御装置200(払出基板)からは実際に10個払出が行われたら賞球信号が送信されることにより、予定と結果の整合を取ることで、不正な払出に対応することができる。
【0386】
また、メイン賞球信号から、いつ発生した入賞であるかが外部装置としての管理装置140等で判断できるようになり、ホール営業における方針の助けにもなる。
具体的には、大当り中に発生した入賞か、通常遊技中に発生した入賞かが判断できる。例えば、大当り中ならたくさん入賞があってもおかしくないが、通常遊技中にたくさん入賞があるようであれば、釘調整が甘すぎると判断できるなどの効果があり、これはホール営業における方針の助けになる。
一方、メイン賞球信号が外部装置に出力されず、払い出し完了時に出力される払出制御装置200からの賞球信号だけしかない場合であれば、大当り中に球切れになったりして払い出しが行われず、補給が遅れて払い出しされたのが大当り終了後となったとき等に、いつ発生した入賞なのかが判断できないことになる。
そのため、補給が遅れて払い出しされたのが大当り終了後となった場合には、通常遊技中に大量の入賞(払い出し)があったことになってしまい、営業データに不備等が出てしまう可能性がある。
これに対して本実施例では、メイン賞球信号と払出制御装置200からの賞球信号の双方を併用しており、メイン賞球信号は入賞してすぐに出力されるので、上記のような不具合がなくなる。
【0387】
〔始動口信号編集処理〕
次に、上述の外部情報編集処理における始動口信号編集処理(ステップC62)の詳細について図91により説明する。
始動口信号編集処理は、第1始動口スイッチ120や第2始動口スイッチ121の入力があった場合に、各々の入力について共通して行われる処理である。
始動口信号編集処理では、まず、始動口信号出力制御タイマが0でなければ−1更新する(ステップC111)。なお、始動口信号出力制御タイマの最小値は0に設定されている。そして、始動口信号出力制御タイマの値が0であるかを判定する(ステップC112)。始動口信号出力制御タイマの値が0である場合(ステップC112;YES)は、始動口信号出力回数が0であるかを判定する(ステップC113)。
【0388】
そして、始動口信号出力回数が0でない場合(ステップC113;NO)は、始動口信号出力回数を−1更新し(ステップC114)、始動口信号出力制御タイマ領域に始動口信号出力制御タイマ初期値をセーブする(ステップC115)。この始動口信号出力制御タイマ初期値は、始動口信号のオン状態(例えば、ハイレベル)の時間(例えば、128ms)とオフ状態(例えば、ロウレベル)の時間(例えば、64ms)を加算した時間(例えば、192ms)となっている。その後、始動口信号をオン状態にするオンデータをRWMの外部情報出力データ領域にセーブして(ステップC117)、始動口信号編集処理を終了する。
また、始動口信号出力回数が0である場合(ステップC113;YES)は、外部装置用の始動口信号をオフ状態にするオフデータをRWMの外部情報出力データ領域にセーブして(ステップC118)、始動口信号編集処理を終了する。
【0389】
一方、始動口信号出力制御タイマの値が0でない場合(ステップC112;NO)は、始動口信号出力制御タイマが出力オン区間中であるかを判定する(ステップC116)。なお、始動口信号出力制御タイマが出力オン区間中であるとは、始動口信号出力制御タイマの値が所定時間(例えば64ms)以上であることである。始動口信号出力制御タイマが出力オン区間中である場合(ステップC116;YES)は、処理をステップC117に移行する。また、始動口信号出力制御タイマが出力オン区間中でない場合(ステップC116;NO)は、外部装置用の始動口信号をオフ状態にするオフデータをRWMの外部情報出力データ領域にセーブして(ステップC118)、始動口信号編集処理を終了する。
【0390】
〔固有情報信号編集処理〕
次に、上述の外部情報編集処理における固有情報信号編集処理(ステップC63)の詳細について図92により説明する。
このルーチンが開始されると、まずステップC121でシリアル通信中かどうかを判別する。これは、遊技制御装置100が管理装置140(又はカードユニット551を含めてもよい)とシリアル通信が実行中かどうかを判断するもので、シリアル通信中であれば、今回はリターンする。
シリアル通信中でなければ、ステップC122以降の処理を実行する。なお、遊技制御装置100と管理装置140との間は単一方向通信であり、遊技制御装置100から管理装置140への信号伝送のみ許容されている。したがって、シリアル通信中か否かの判定は、遊技制御装置100内のシリアル送信回路が通信中であるかをチェックして行う。
シリアル通信中でない場合、ステップC122で固有情報信号の出力要求フラグがセットされているかをチェックし、ステップC122でNO(出力要求フラグがセットなし)であれば、ルーチンを終了してリターンする。一方、ステップC122でYES(出力要求フラグがセットあり)であれば、ステップC123に進んで、固有情報信号の出力要求フラグをクリアする。
ここで、固有情報信号の出力要求フラグは「電源投入時のセキュリティ信号」、「扉・枠開放信号」、「大当り1信号」に対応して独立にセットされる。複数同時に成立している場合には、優先順位を設けて1つずつ対応して処理する。したがって、一度に全部の出力要求フラグをクリアするのではない。
次いで、ステップC124でCPU固有情報取得処理を行う。これは、固有情報を取得する処理で、詳細は後述する。ステップC124を経ると、リターンする。
【0391】
〔CPU固有情報取得処理〕
次に、上述の固有情報信号編集処理におけるCPU固有情報取得処理(ステップC125)の詳細について図93により説明する。
このルーチンが開始されると、まずステップC131でスタートコードを遊技制御装置100内のシリアル送信バッファに書き込む。シリアル通信の開始であることを受け側である管理装置140に特定させるためのコードである。次いで、ステップC132で取得はチップコード(主基板固有ID)のみかどうかを判別し、取得がチップコードのみであればステップC137にジャンプして、チップコード識別コードをシリアル送信バッファに書き込み、ステップC138で個体識別情報(固有ID)としてのチップコードを読み出し、シリアル送信バッファに書き込み、リターンする。これにより、固有IDが取得されて管理装置140に出力されることになる。
【0392】
一方、ステップC132で取得がチップコードのみでなければ、ステップC133に進んでメーカコード識別コードをシリアル送信バッファに書き込むとともに、ステップC134でメーカコードを読み出してシリアル送信バッファに書き込む。次いで、ステップC135で製品コード識別コードをシリアル送信バッファに書き込むとともに、ステップC136で製品コードを読み出してシリアル送信バッファに書き込み、その後、ステップC137に進む。これにより、メーカコード及び製品コードが取得されて管理装置140に出力されることになる。したがって、ステップC132で取得がチップコードのみでない場合には、メーカコード、製品コード、チップコードが順次取得されて、管理装置140に出力されることになる。
【0393】
このように、遊技制御装置100に予め備わっているシリアル転送(送信)機能を利用することで、改めて転送(送信)処理をプログラム(例えば、遊技プログラム)で用意する必要が無くなるので、プログラム構成が効率化される。
また、パラレル転送(送信)に比べて、配線の本数が少なくなるのでコスト減になる。
なお、上記のようにシリアル通信で遊技制御装置100から管理装置140へ固有IDなどを送信する例に限らず、例えばパラレル通信で送信するようにしてもよい。
例えば、CPU固有情報のうちメーカコードは3バイト、製品コードは32バイト、チップコードは4バイトで構成される。このように、CPU固有情報は非常に長い情報となるため、本実施例では通信の輻輳が発生するのを回避できるように、状況に応じて送信する情報を可変長にしている。
この背景を説明する。
例えば、ガラス枠5又は前面枠4の開放(扉又は枠の開放)というイベントが発生する度にCPU固有情報に関する全データを送るようにすると、仮にわざと扉又は枠の開閉が繰り返されると、大量の通信が発生することが考えられ、通信の輻輳が発生するおそれがある。
そので本実施例では、CPU固有情報については状況に応じて送信する情報を可変長にすることで、通信の輻輳発生を回避できるようにしている。
なお、上記に限らず、例えばメーカコード、製品コード、チップコードを毎回送信する固定長としてもよい。その際は、メーカコード識別コード、製品コード識別コード、チップコード識別コードは入れないようにしてもよい。
【0394】
次に、本実施例の遊技機(パチンコ機1)における特別結果の種類と大入賞口(変動入賞装置)の開閉パターンについて、図95図96により説明する。
特別結果の種類には、2R確変、11R確変、11R通常及び16R確変の4種類が設定されている。2R確変、11R確変及び16R確変は、それぞれ特別遊技状態でのラウンド数が2,11,16ラウンドであり、特別遊技状態の終了後に次回の特別結果の導出まで確率状態が高確率状態に設定されるとともに、時短状態とされる特別結果である。
一方、11R通常は、特別遊技状態でのラウンド数が11ラウンドであり、特別遊技状態の終了後の確率状態が通常確率状態に設定されるとともに、所定回数(例えば70回)の特図変動表示ゲームを実行するまで時短状態とされる特別結果である。
【0395】
また、本実施例の遊技機(パチンコ機1)は下大入賞口(変動入賞装置27)と、上大入賞口(第2変動入賞装置33)を備え、それぞれ複数の開閉パターンが用意されている。そして、これらの複数の開閉パターンから特別結果の種類に応じて一の開閉パターンが選択されるようになっている。なお、以下の開閉パターンにおいて大入賞口の開放時間として示す値は最大開放時間を示すものであり、一のラウンドにおいて最大開放時間の経過前に所定数の遊技球が大入賞口に流入した場合は、最大開放時間の経過を待たずに大入賞口を閉鎖してラウンドが終了する。
【0396】
図95は、上大入賞口(第2変動入賞装置33)の開閉パターンを示す図である。
上大入賞口(第2変動入賞装置33)の開閉パターンとしては、上大入賞口開閉パターン1から上大入賞口開閉パターン5までの5種類の開閉パターンがある。
詳細は、以下の通りである。
図95(a)に示す上大入賞口開閉パターン1は、特別結果が2R確変であって、当該特別結果の導出時に時短状態でない場合(すなわち、大当り発生時に普電サポート無し(普図低確率)のケース)に選択される。
この上大入賞口開閉パターン1では、初回のラウンド(1R)で52msの開放時間が設定され、1448msのインターバル期間を挟んだ後に次のラウンド(2R)で52msの開放時間が設定される。そして、22400msのエンディング時間の経過後、特別遊技状態が終了する。
【0397】
図95(b)に示す上大入賞口開閉パターン2は、特別結果が2R確変であって、当該特別結果の導出時に時短状態である場合(すなわち、大当り発生時に普電サポート有り(普図高確率)のケース)に選択される。
この上大入賞口開閉パターン2は上大入賞口開閉パターン1と同様の開閉態様であるが、エンディング時間が1400msとなっている。
図95(c)に示す上大入賞口開閉パターン3は、16R確変である複数の特別結果のうち一部の特別結果に対応して選択される。この上大入賞口開閉パターン3では、52msの開放時間が設定されるラウンドを1448msのインターバル期間を挟んで16ラウンド行い、1400msのエンディング時間の経過後、特別遊技状態が終了する。
【0398】
図95(d)に示す上大入賞口開閉パターン4は、16R確変である複数の特別結果のうち一部の特別結果に対応して選択される。この上大入賞口開閉パターン4では、初回のラウンド(1R)において、まず上大入賞口開閉パターン3と同様に52msの開放を1448msの閉鎖時間を挟んで16回行う。
ここまでは上大入賞口開閉パターン3と同様の開閉態様であり、表示装置41等での演出も同じものとして、遊技者が何れの開閉パターンであるかを認識し難くしている。その後、6300msの閉鎖時間において表示装置41に昇格映像を表示して上大入賞口開閉パターン4であることを報知し、26168msの開放を行って初回のラウンドを終了する。初回のラウンドの終了後、2000msのインターバル期間を挟んで27000msの開放時間が設定されるラウンドを15回繰り返し、6000msのエンディング時間の経過後、特別遊技状態が終了する。
このように、上大入賞口開閉パターン3と上大入賞口開閉パターン4の初回のラウンド(1R)を同様の開閉サイクル(52msの開放、1448msの閉塞)とすることで、何れの大当りが発生したか、当該サイクルが終了するまで遊技者が認識し難くして、遊技の興趣を高めるという効果がある。
【0399】
図95(e)に示す上大入賞口開閉パターン5は、16R確変である複数の特別結果のうち一部の特別結果に対応して選択される。
この上大入賞口開閉パターン5では、初回のラウンド(1R)において、まず52msの開放を行った後に5948msの閉鎖時間を挟んで26948msの開放を行い、初回のラウンドを終了する。初回のラウンドの終了後、2000msのインターバル期間を挟んで27000msの開放時間が設定されるラウンドを15回繰り返し、6000msのエンディング時間の経過後、特別遊技状態が終了する。
【0400】
次に、図96は下大入賞口(変動入賞装置27)の開閉パターンを示す図である。
下大入賞口(変動入賞装置27)の開閉パターンとしては、下大入賞口開閉パターン1から下大入賞口開閉パターン3までの3種類の開閉パターンがある。
詳細は、以下の通りである。
図96(a)に示す下大入賞口開閉パターン1は、特別結果が11R確変又は11R通常である場合に選択される。
この下大入賞口開閉パターン1では、初回のラウンド(1R)において、まず200msの開放を行った後に5800msの閉鎖時間を挟んで28000msの開放を行い、初回のラウンドを終了する。初回のラウンドの終了後、2000msのインターバル期間を挟んで27000msの開放時間が設定されるラウンドを10回繰り返し、6000msのエンディング時間の経過後、特別遊技状態が終了する。
【0401】
図96(b)に示す下大入賞口開閉パターン2は、16R確変である複数の特別結果のうち一部の特別結果に対応して選択される。
この下大入賞口開閉パターン2では、11ラウンドの終了までは下大入賞口開閉パターン1や3と同様の開閉態様とされ、表示装置41等での演出も同じものとして、遊技者が何れの開閉パターンであるかを認識し難くしている。11ラウンドの終了後、1500msのインターバル期間を挟んで200msの開放時間が設定されるラウンドを5回繰り返し、1400msのエンディング時間の経過後、特別遊技状態が終了する。
【0402】
図96(c)に示す下大入賞口開閉パターン3は、16R確変である複数の特別結果のうち一部の特別結果に対応して選択される。
この下大入賞口開閉パターン3では、11ラウンドの終了までは下大入賞口開閉パターン1や2と同様の開閉態様とされ、表示装置41等での演出も同じものとして、遊技者が何れの開閉パターンであるかを認識し難くしている。そして、11ラウンドの終了後、13000msのインターバル期間において表示装置41に昇格映像を表示して下大入賞口開閉パターン3であることを報知する。その後、27000msの開放時間が設定されるラウンドを2000msのインターバル期間を挟んで5回繰り返し、6000msのエンディング時間の経過後、特別遊技状態が終了する。
【0403】
次に、演出制御装置300の制御について、図97乃至図171により説明する。
ここでは、ステップ番号として「ステップD」、「ステップE」及び「ステップF」を用いて説明する。
なお、演出制御装置300が制御する特図は、表示装置41に表示される演出用の特図であり、以下の演出制御装置300の制御処理の説明における特図は、この演出用の特図(本特図ではない飾り図柄)を意味する。
【0404】
また、一般に「キャラクタ」とは、性質や性格、或いは性質や性格を有する登場人物や動物等を意味し、コンピュータ用語としては文字を意味する場合もある。しかし、以下の演出制御装置300の説明では、特にVDPを使った画像表示制御の説明においては、一連のムービー、背景画像、図柄(特図の飾り図柄や第4図柄)の画像、登場人物の画像等のまとまりのある静止画又は動画をキャラクタと称し、またそのような画像データ(静止画又は動画のデータ)をキャラクタのデータ(或いはキャラクタデータ)と称する場合がある。
また、以下の演出制御装置300の説明において、オブジェクトとは、表示制御の場合、まとまりのある表示制御の対象を意味し、表示要素(背景画像、特図の飾り図柄の画像、予告キャラクタの画像、保留表示の画像など、まとまりのある画像)に相当する。例えば本例の場合、特図の飾り図柄には、左図柄、右図柄、中図柄という変動表示領域(リール)の違いでの区別があり、さらにこれら区別のそれぞれに、現図柄、次図柄、前図柄というスクロール方向の表示位置が異なる区別がある。即ち、例えば左図柄については、左図柄の現図柄、左図柄の次図柄、左図柄の前図柄があり、細かく見れば、これらそれぞれが一つのオブジェクトである。但し、制御処理上においては、例えば現図柄、次図柄、前図柄を含む左図柄全体を一つの表示要素として分類する場合もある。
【0405】
〔パワーオンリセット処理〕
まず、図97により、演出制御装置300のパワーオンリセット処理を説明する。
このパワーオンリセット処理は、パチンコ機1の電源供給が開始された時点で開始する。
パチンコ機1の電源供給が開始すると、まずステップD1で割込みを禁止し、次にステップD2でCPU311の初期設定を行い、次にステップD3でVDP312の初期設定を行い、次にステップD4で割込みを許可し、次いでステップD5のメイン処理を開始する。メイン処理を開始すると、電源遮断(停電含む)までこのメイン処理を実行する。
【0406】
〔メイン処理〕
次に、上述のパワーオンリセット処理におけるメイン処理(ステップD5)を図98により説明する。
メイン処理を開始すると、まずステップD11で無線モジュール360を初期化する無線モジュール初期化処理を実行し、ステップD12乃至D19を順次実行した後、ステップD20に進む。なお、本例は異なるパチンコ機におけるサブ基板間(この場合、演出制御装置間、以下場合により、単にサブ間という。)の通信を無線通信で行う例としているが、無線通信に限定されるものではなく、有線通信でもよい。
【0407】
ステップD12では、VDP312のレジスタのベースアドレスを設定する。これは、CPU311の種類やその設定によりアドレス空間が異なるので、ベースとなるアドレスを設定し、そこからの差分を基に各種指定を行うためである。
ステップD13では、表示用データ生成を許可する。これは、表示回路608がVRAM606,607へアクセスを行い、表示データを生成するのを許可する処理である。
ステップD14では、VDP312の画像展開領域のサイズを設定する。
ステップD15では、乱数シードを設定する。これは、例えばsrand関数を用いて擬似乱数の発生系列を設定する処理である。ここで、srand関数に与える引数としては、0(ゼロ)などの固定値を使用してもよいし、遊技機毎に異なるようにCPU等のID値などを基に作成した値を使用してもよい。
【0408】
ステップD16では、RAM311aにおけるモーション管理用の記憶領域(モーション管理領域及びモーション管理領域のアドレス領域を含む)を初期化する。
ステップD17では、RAM311aにおけるシナリオ管理用の記憶領域(シナリオ管理領域及びシナリオ管理領域のアドレス領域を含む)を初期化する。
ここで、「モーション」はブロック化(パーツ化)された演出動作(本例の場合、具体的には、表示装置41での表示演出をブロック化したもの)を意味し、「シナリオ」は演出の流れ(どのモーションをいつ実行するか等を決めるもの)を意味する。また、「モーション管理領域のアドレス領域」とは、モーション管理領域の先頭アドレスを格納するための記憶領域を意味する。また同様に、「シナリオ管理領域のアドレス領域」とは、シナリオ管理領域の先頭アドレスを格納するための記憶領域を意味する。
【0409】
ステップD18では、端末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は、サブ基板間通信において、送信先や送信元を識別するなどのために設けられる。
【0410】
ステップD19では、初期化すべき領域(例えば、演出用フラグ領域(後述する各種のフラグとして使う記憶領域))の初期設定(例えば、所定の初期値をセーブする処理)を行う。
次にステップD20に進むと、ステップD20乃至D32を実行し、ステップD33に進む。
ステップD20では、WDT(ウォッチドッグタイマ)をクリアする。
ステップD21では、演出ボタン入力処理を実行する。これは、演出ボタン9(例えば、プッシュボタンとセレクトボタンからなる構成でもよい)が有効時に押された場合の編集を行う処理である。なお、演出ボタンは高速でオンオフしないので、ボタンの入力を感知する処理はこの処理内で行ってもよいし、図示していない短周期のタイマ割込み内で行ってもよい。
【0411】
ステップD22では、乱数更新処理を実行する。これは、例えばrand関数を用いてメイン処理の制御周期毎に最低1回は擬似乱数の更新を行う処理である。rand関数は再計算が行われる度に指定の発生系列に基づいて乱数を発生するので、関数を実行するだけでよい。なお、主基板(遊技制御装置100)のように+1ずつ更新する乱数を使ってもよい。
ステップD23では、受信コマンドチェック処理(後述する)を実行する。
ステップD23の次に、ステップD23aにおいては、テストモード処理(後述する)を実行し、ステップD24に進む。
【0412】
ステップD24では、サブ間送信開始処理を実行する。これは、サブ間コマンド送信の要求があった場合にサブ間送信割込みを許可したりする処理である。なお、演出によっては直ぐにコマンドを送りたくない場合もあるので時間調整も行う(詳細後述する)。
ステップD25では、サブ間受信タスク処理を実行する。これは、受信したサブ間コマンドの解析を主に行う処理である(詳細後述する)。
ステップD26では、サブ間ack応答タスク処理を実行する。これは、他台にack(返信)を要求した場合の監視を行う処理である(詳細後述する)。
ステップD27では、サブ間演出設定処理を実行する。これは、受信したサブ間コマンドに対応する演出の制御を行う処理である(詳細後述する)。
【0413】
ステップD28では、シナリオ設定処理を実行する。これは、受信した遊技制御装置100からのコマンドに基づくシナリオの解析などを行う処理である(詳細後述する)。
ステップD29では、描画領域を黒で塗り潰す処理を実行する。これは、フレームバッファの過去の表示を完全に消すための処理であり、例えば全体が黒い四角形の画像をフレームバッファに配置し、ゴミなどが表示されないようにする処理である。
ステップD30では、モーション制御処理を実行する。これはステップD28で解析等されたシナリオを実行するための処理である(詳細後述する)。
【0414】
ステップD31では、演出表示編集処理を実行する。これは、VDP312に表示装置41での描画内容(ステップD28乃至D30で設定されたもの)を指示するための各種コマンドとそのパラメータの設定を行う処理である(詳細後述する)。なお、この演出表示編集処理ではコマンドがテーブル状に設定され、こうして設定されたコマンドは後述するステップD34(画面描画を指示)でVDP312に順次送信される。
ステップD32では、描画コマンド準備終了設定を実行する。これはステップD31で設定されるVDP312への全てのコマンドの準備が終了したことを設定する処理である。
【0415】
ステップD33に進むと、フレーム切替タイミングであるか判定し、フレーム切替タイミングであればステップD34乃至D37を順次実行し、フレーム切替タイミングでなければ、このステップD33を繰り返す。ここで、フレーム切替タイミングは、Vブランク割込み(Vシンク割込みともいう)の周期(例えば1/60秒)を基に作成された処理周期(例えば1/30秒≒33.333ms)に相当する時間的間隔で到来するタイミングである。このステップD33の処理によって、これより後の処理(ステップD34乃至D37、及びその後のステップD20乃至D32)は、このフレーム切替タイミングで上記処理周期毎に実行される。なお、演出内容と同期する必要のある時間管理は、このフレーム単位(即ち、上記処理周期単位)で行われる。上記処理周期が、1/30秒の場合、例えば3フレームでは100msになる。このことは、主基板(遊技制御装置)がタイマ割込み周期の4ms単位で時間値管理しているのと同様である。
【0416】
ステップD34では、VDP312に画面描画を指示する。
ステップD35では、サウンド制御処理を実行する(説明は省略する)。
ステップD36では、各種LED等を制御するための装飾制御処理を実行する。
ステップD37では、各種モータやSOL(ソレノイド)を含む可動体を制御するための可動体制御処理を実行する。このステップD37を実行した後は、ステップD20に戻り、ステップD20に進んだ場合と同じ処理を繰り返す。
【0417】
なお、ステップD35乃至D37の制御処理は、画面の演出に合わせるため、動作の切り替えが処理周期単位で実行されるこれらのステップ内で行っているが、これら制御処理で生成又は設定された信号やデータ(特に各種LEDやモータを駆動制御する信号等)を実際にポートに出力する処理は、図示していない短周期のタイマ割込み内で行われる。ただし、各種デバイスの制御に特化したICを使用している場合は、シリアル通信等で指示するだけで、タイマ割込みで信号等の出力を行わない場合もある。
【0418】
〔コマンド受信割込み処理〕
次に、コマンド受信割込み処理について図99により説明する。このコマンド受信割込み処理は、遊技制御装置100(主基板)から送信されるコマンドを演出制御装置300(サブ基板)で受信するための処理であり、当該コマンドを構成するデータが正常な範囲に入っているかをチェックする内容も含まれている。
この主基板とサブ基板の通信は、ストローブ信号(STB信号)を用いたパラレル通信によって行われる態様でもよいが、本例の場合、シリアル通信によって行われる。即ち、両基板とも、例えばCPU101A,311に搭載されているシリアル通信回路の機能を使用し、通信を行う。
【0419】
この場合のシリアル通信では、ハード的に自動で送受信が行われるので、パラレル通信時とは異なり、両基板において通信のために処理時間を専有してしまうことがない利点がある。パラレル通信の場合、遊技制御装置が送信してくるタイミングに合わせ演出制御装置は最優先で受信処理を行わなくてはならず、プログラム作成を困難にしていた。さらに通信中は両基板とも通信処理を実行している必要がある。ところがシリアル通信では、コマンドを受信完了すると割込み(コマンド受信割込み)が発生して知らせてくれるので、あとはシリアル受信バッファから取り出すだけでよい。またシリアル通信では、最優先で割込み処理を行う必要がなく、割り込まれると困る場合には割込みを禁止することが可能となった。またシリアル通信では、送信側の処理もシリアル送信バッファにコマンドを入れておくだけでよいという簡単なものとなる。またシリアル通信では、両基板とも、ハードが送受信をしてくれている間、他の処理を実行できるので効率がよい。また、物理的にも従来(パラレル通信の場合)は8本以上の配線が必要だったが、シリアル通信では最低1本でも実現できるようになった。なお、シリアル通信を使用した場合でも、遊技制御装置100(主基板)と演出制御装置300(サブ基板)との間の通信は、双方向通信ではなく、単方向通信のみ(主基板→サブ基板の方向のみ)が可能な構成となっている。これにより、サブ基板から主基板への通信を利用した不正が防止される。
【0420】
このコマンド受信割込み処理は、演出制御装置300(サブ基板)において前述のコマンド受信割込みが発生することによって開始される。即ち、主基板のCPU101Aによりシリアル通信で送信されたコマンドを、サブ基板のCPU311が受信完了するとコマンド受信割込みが発生し、このコマンド受信割込み処理が開始される。ここで、このコマンド受信割込みは、前述したVブランク割込みよりも、割込みの優先順位が高い。また、上記コマンド受信割込みは上述したように不定期に発生するが、主基板がコマンドを連続で送信する時には、その送信間隔(例えば4msec)に対応してサブ基板での上記コマンド受信割込みの発生間隔も同じ間隔(例えば4msec)になる。
また、主基板からのコマンドは、MODEのデータ(1バイト)とACTIONのデータ(1バイト)とを含む構成となっており、これらが順次送信される。以下では、コマンドを構成するこのようなデータを、コマンドのデータ或いはコマンドデータという。
このルーチンが開始されると、まずステップD41で受信監視タイマを停止し、次にステップD42でシリアル受信バッファからコマンドをロードし、ステップD44に進む。
【0421】
ステップD44に進むと、ステップD42でロードしたコマンドデータがMODE範囲のものか否か、当該データの値に基づいて判定し、MODE範囲のものならステップD45に進み、MODE範囲のものでなければACTION範囲であるとしてステップD48に進む。なお、MODE範囲とはMODEのデータとして設定し得る1バイト内の値の範囲であり、またACTION範囲とはACTIONのデータとして設定し得る1バイト内の値の範囲であり、予め決められている。
ステップD45に進むと、ステップD42でロードしたコマンドデータを受信MODEとして格納し、次にステップD46でMODE受信フラグに「OK」をセットし、次にステップD47で受信監視タイマの値をゼロにリセットして当該受信開始タイマの計時動作をスタートし、その後リターンする。なお、上記ステップD45で使用しているように、単に格納するというときは、後の制御処理に使用するために所定の記憶領域に読出し可能に記憶保存することを意味する(以下同様)。
【0422】
ステップD48に進むと、MODE受信フラグの値が「OK」であるか判定し、「OK」であればステップD49でさらに受信監視タイマがタイムアウトしたか判定し、タイムアウトしていない場合にはステップD50に進む。そして、ステップD48でMODE受信フラグの値が「OK」でない場合と、ステップD49でタイムアウトしている場合には、正常にコマンドを受信できなかったのでステップD59でMODE受信フラグに「NG」をセットした後にリターンする。ステップD48でMODE受信フラグの値が「OK」でない場合は、例えばACTION範囲のコマンドデータが受信されたのに、それに先だってMODE範囲のコマンドデータが受信されていないので異常である。また、ステップD49でタイムアウトしている場合は、MODE範囲のコマンドデータが受信された時点から受信監視タイマで計時される規定の受信監視時間内に、ACTION範囲のコマンドデータが受信されないので異常である。
【0423】
ステップD50に進むと、ステップD42でロードしたコマンドデータを受信ACTIONとして格納し、次にステップD51でMODE受信フラグの値を「NG」にセットし、ステップD52に進む。
ステップD52では、コマンド受信カウンタの値が31より大きいか判定し、大きい場合には後述するコマンドバッファの容量を超えるのでリターンし、大きくない場合(コマンド受信カウンタ≦31の場合)にはステップD53に進む。なお、コマンド受信カウンタの値が0乃至31でステップD53に進む構成としているが、0乃至31という値は後述するコマンドバッファの容量に対応する値であり、システム制御周期(前述の処理周期;例えば1/30秒)で主基板から送信される可能性のあるコマンド数以上になっていればよい。
【0424】
ステップD53に進むと、受信MODE、受信ACTIONに対応する演出動作を準備し、次いでステップD54で受信コマンド範囲チェック処理(後述する)を実行し、その後ステップD55に進む。
ステップD55では、範囲チェックOKか否か判定し、OKでなければコマンド(受信MODE及び受信ACTION)を廃棄すべくリターンし、OKならばステップD56乃至D58を順次実行した後にリターンする。ここで、ステップD55での範囲チェックの判定結果は、後述する受信コマンド範囲チェック処理においてコマンド範囲正常フラグがセットされていれば範囲チェックOK(ステップD55がYes)となり、後述する受信コマンド範囲チェック処理においてコマンド範囲異常フラグがセットされていれば範囲チェックOKでない(ステップD55がNo)となる。
【0425】
ステップD56では、受信MODEと受信ACTIONをコマンドバッファに格納する。コマンドバッファは、本例ではいわゆるリングバッファであり、規定の容量(記憶保持できるコマンド数)を有する。このコマンドバッファは、例えばCPU311のRAM内の記憶領域によって構成される。
ステップD57では、コマンド受信カウンタの値を1だけ増やす更新を行う。
ステップD58では、コマンドバッファにデータを格納した(即ち、書き込んだ)ので、コマンド書込インデックスの値を0乃至31の範囲で1だけ増やす更新を行う。なお、コマンド書込インデックスはコマンドバッファの書込用ポインタであり、このコマンド書込インデックスの値を本例では0乃至31の範囲としているが、この範囲はコマンドバッファの容量(この場合、32)に対応しており、既述したように、システム制御周期(前述の処理周期;例えば1/30秒)の1周期の間に主基板から送信される可能性のあるコマンド数以上になっていればよい。
【0426】
〔受信コマンド範囲チェック処理〕
次に、上述のコマンド受信割込み処理における受信コマンド範囲チェック処理(ステップD54)の詳細について図100により説明する。
このルーチンが開始されると、まずステップD61で、ステップD45で格納された受信MODEの値が正常範囲か判定し、正常範囲でなければステップD67でコマンド範囲異常フラグをセットしてリターンし、正常範囲であればステップD62、D63を順次実行した後にステップD64に進む。MODEの値は、MODE範囲の値の全てが指令内容を定義されているわけではなく、定義されずに使用されていない値もあり、このような使用されていない値である場合には、ステップD61の判定で正常範囲でないと判定される。
なお、このステップD61又は後述するステップD92(或いはステップD61とD92の両方)では、MODEのデータの歯抜けチェックも行い、このチェックで無効なコマンドであれば正常範囲でないとする構成であってもよい。
なお、MODEのデータの歯抜けチェックとは、チェック対象のMODEのデータが、MODEがとり得る値が連続していない部分における無効な値に相当していないか否か判定することを意味する。MODEの値に不連続な部分が無い場合には、この歯抜けチェックは不要である。
【0427】
ステップD62では、ステップD45で格納された受信MODEの値に対応するACTIONの値としてあり得る値のうちの最小値(ACTION_min)を取得する。なお本願では、このように制御処理においてデータを「取得する」とは、ROM(本例の演出制御装置300ではPROM321)からデータを取り出すことを意味する。
ステップD63では、ステップD45で格納された受信MODEの値に対応するACTIONの値としてあり得る値のうちの最大値(ACTION_max)を取得する。
【0428】
なお、PROM321には図172の左側に示すようなACTIONチェックテーブルが登録されており、上記ステップD62及びD63では、このACTIONチェックテーブルから対応する値を取得する。ACTIONチェックテーブルは、各MODEの値に対応して、上記最小値(ACTION_min)に相当するACTION下限のデータと、上記最大値(ACTION_max)に相当するACTION上限のデータと、一致チェックテーブル(後述する)を特定するデータ(例えば、一致チェックテーブルの先頭アドレス)とが、それぞれ定義されたものである。図172の場合、例えばMODEの値が89h(飾り図柄1)であると、ACTION下限が00hであり、ACTION上限が72hであるため、上記ステップD62では最小値(ACTION_min)として00hが取得され、上記ステップD63では最大値(ACTION_max)として72hが取得されることになる。なお、上記ACTIONチェックテーブルのデータなど、即ち、演出制御装置300の制御処理で使用する各種情報(例えば、各種テーブルのデータ)は、PROM321に動作プログラムとともに予め記憶されている。
【0429】
ステップD64に進むと、ステップD50で格納された受信ACTIONの値が、ステップD62で取得された最小値よりも小さいか判定し、小さい場合は異常であるのでステップD67に進み、小さくない場合にはステップD65に進む。
ステップD65に進むと、ステップD50で格納された受信ACTIONの値が、ステップD63で取得された最大値よりも大きいか判定し、大きい場合は異常であるのでステップD67に進み、大きくない場合にはステップD66に進む。
ステップD66に進む場合には、正常であるので、コマンド範囲正常フラグをセットしてリターンする。ステップD67に進む場合は、異常であるので、コマンド範囲異常フラグをセットしてリターンする。
【0430】
〔受信コマンドチェック処理〕
次に、上述のメイン処理における受信コマンドチェック処理(ステップD23)の詳細について図101により説明する。
このルーチンが開始されると、まずステップD71でコマンド受信カウンタの値をコマンド受信数としてロードし、次にステップD72でコマンド受信数がゼロでないか判定し、ゼロでないならばステップD73乃至D75を順次実行した後にステップD76に進み、ゼロならばリターンする。なお本願では、上記ステップD71のように、制御処理においてデータを「ロードする」とは、RAM(本例の演出制御装置300ではCPU311内のRAM)からデータを取り出すことを意味する。
【0431】
ステップ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」としてもよい。
【0432】
ステップD74では、受信コマンドバッファ(ステップD56のコマンドバッファに相当、以下単にコマンドバッファという)の内容(即ち、読出用ポインタに対応するアドレスに記憶されているコマンドデータ)をコマンド領域(場合により、コマンド格納領域という)にコピーする。コマンド領域は、いわゆるFIFO形式(先入れ先出し形式)のバッファを構成する例えばCPU311のRAM内の記憶領域である。
ステップD75では、コマンドバッファのデータを読み出したので、コマンドバッファの読出用ポインタであるコマンド読出インデックスの値を0乃至31の範囲で1だけ増やす更新を行う。なお、ここでの0乃至31の範囲は、ステップD58で更新されるコマンド書込インデックスと同範囲になっていればよい。
【0433】
ステップD76に進むと、コマンド受信数分のコマンドをコピー完了したか否か(即ち、コマンド受信数分だけステップD74及びD75を繰り返し実行したか否か)を判定し、完了していなければステップD74に戻ってステップD74から処理を繰り返し、完了していればステップD77に進む。
【0434】
ステップD77に進むと、コマンド領域の内容(コマンド領域の未だ読み出されていないデータのうちで一番先に格納されたデータ、即ち、次に読み出すべきデータ)をロードし(即ち、読み出し)、このロードしたコマンド(以下、今回のコマンドという)のデータについて、次のステップD78で受信コマンド解析処理(後述する)を実行し、その後ステップD79に進む。
ステップD79に進むと、コマンド領域のアドレス(次に読み出すべきデータのアドレス)を更新し、ステップD80に進む。
ステップD80では、コマンド受信数分のコマンドを解析完了したか否か(即ち、コマンド受信数分だけステップD77乃至D79を繰り返し実行したか否か)を判定し、完了していなければステップD77に戻ってステップD77から処理を繰り返し、完了していればリターンする。
【0435】
〔受信コマンド解析処理〕
次に、上述の受信コマンドチェック処理における受信コマンド解析処理(ステップD78)の詳細について図102により説明する。
このルーチンが開始されると、まずステップD91で、ステップD77においてロードした今回のコマンドのデータのうちの上位バイトをMODEに、下位バイトをACTにそれぞれ分離して記憶し、その後ステップD92に進む。なお、特図の変動パターンを指令する変動系のコマンドの場合、MODEとして記憶される上位バイトのデータは前半変動パターンを指令し、ACTとして記憶される下位バイトのデータは後半変動パターンを指令するものである。
【0436】
ステップD92では、ステップD91で分離されたMODEの値とACTの値がそれぞれ正常範囲か判定し、これらの値が一方だけでも正常範囲でなければリターンし、これらの値の両方が正常範囲であればステップD94に進む。前述したように、MODEの値は定義されずに使用されていない値もあり、このような使用されていない値である場合には、ステップD92の判定で正常範囲でないと判定される(前述のステップD61と同様)。
また、上記ステップD92における、ステップD91で分離されたACTの値が正常範囲か否かの判定は、前述したステップD62〜D65と同様に行う。即ち、MODE毎に有効なACTの値は異なり、このACTの有効値の上限〜下限は前述したACTIONチェックテーブル(図172)に定義されており、ステップD92ではこの上限〜下限の範囲内に分離されたACTの値が収まっているかをチェックし、収まっていれば正常範囲と判定する(この時点では歯抜けチェックは出来ていない)。
【0437】
ステップD94に進むと、前述したACTIONチェックテーブルから、分離されたMODEの値に対応する一致チェックテーブルの先頭アドレスを取得し、その後ステップD95に進む。図172の場合、例えばMODEの値が89h(飾り図柄1)であると、一致チェックテーブルの先頭アドレスはtMOD89であり、これがステップD94で取得されることになる。
ここで、一致チェックテーブルとは、例えば図172の右側に示すものであり、対応するMODEの値に対して有効な全てのACTの値(ACTIONの値)が先頭アドレスから順に登録されたものであり、MODEの値毎に設けられている。図172の右側に示す一致チェックテーブルは、MODEの値が89hの場合に対応するものであり、このMODEの値(89h)に対して有効な全てのACTの値(11h、12h、21h、22h等)が、テーブルの先頭アドレス(最初の行)から順に登録され、テーブルの最終アドレス(最後の行)にはチェック終了コード(−1)が登録されている。
なお、有効なACTIONの値が連続した範囲で固まっているMODEの場合には、一致チェックテーブルは不要であるため、ACTIONチェックテーブルにおける一致チェックテーブルの先頭アドレスのデータはNULLになっている。図172の場合、例えばMODEの値が80h(客待ち)であると、一致チェックテーブルの先頭アドレスはNULLであり、これがステップD94で取得されることになる。また、一致チェックテーブルが定義されているMODEの行に対しては、有効ACTIONが歯抜けになっているので、上限/下限をチェックした後、対応する一致チェックテーブルを使って更なる比較判定が行われる(後述するステップD96〜D99)。
【0438】
ステップD95に進むと、ステップD94で取得した一致チェックテーブルの先頭アドレスがNULLか判定し、NULLであるならばステップD100に進み、NULLでなければステップD96に進む。なお、一致チェックテーブルの先頭アドレスがNULLであるということは、MODEに対する有効なACTの値が連続しているということであり、ステップD92の範囲チェックだけでOKであるため、後述するステップD96〜D99を実行しないでステップD100にジャンプする。
【0439】
ステップD96に進むと、ステップD96、D99をループ端とするループ処理(繰り返し処理)を実行する。つまりステップD96に進むと、ステップD99で分岐することによって、後述するステップD97とステップD98を順次実行する動作を後述の終了条件が成立するまで繰り返す。当該ループ処理は、ステップD94で取得され後述のステップD98で更新される一致チェックテーブルのアドレス(以下、一致チェックテーブルアドレスという)に対応するデータ(一致チェックテーブル内の対応する行のデータ)がステップD91で分離されたACTの値に一致することを終了条件としており、この終了条件が成立するまで繰り返し実行される。但し、後述するステップD97の判定結果がYESになると、当該ループ処理を抜ける(前記終了条件が成立していなくても当該ループ処理は終了となる)。
【0440】
即ち、ステップD96に進むと、まずステップD97で、一致チェックテーブルアドレスに対応するデータがチェック終了コードであるか判定し、チェック終了コードであれば当該ループ処理を抜けてリターンし、チェック終了コードでなければ次のステップD98を実行する。そしてステップD98では、一致チェックテーブルアドレスを次レコードに更新する。一致チェックテーブルアドレスが次レコードに更新されると、当該一致チェックテーブルアドレスに対応する一致チェックテーブル内の行が次の行(図172の右側では一つ下の行)に切り替わる。次に、ステップD98を実行するとステップD99に進み、更新された一致チェックテーブルアドレスに対応するデータがステップD91で分離されたACTの値に一致するか判定し、一致すれば前記終了条件が成立したので当該ループ処理を終了してステップD100に進み、不一致であるならばステップD96に戻って当該ループ処理を繰り返す。
【0441】
以上説明したステップD96〜D99のループ処理では、MODEに対して正常なACTの組合せになっているか否かのチェック(歯抜けチェック含む)を実行している。1つのMODEに対し、有効なACTは複数あるがそれらの値が連続しているとは限らないので、コマンドが有効値であるかを比較確認している。そして、一致チェックテーブル中には有効値のみ定義されているので、それらの何れかと一致するかを1つ1つ比較確認している。例えば、ステップD91で分離されたMODEの値が89hでありACTの値が31hであるとすると、図172の場合、一致チェックテーブルの5行目のデータが31hであるため、上記ループ処理が4回繰り返されたときに上記終了条件が成立してステップD99からステップD100に進むことになる。また、ステップD91で分離されたMODEの値が89hでありACTの値が13h等であるとすると、図172の場合、一致チェックテーブルには13h等が存在しない(13h等は一致チェックテーブルにおいて不連続な部分の存在しないデータである歯抜けデータとなっている)ため、上記ループ処理が最終行まで繰り返されても上記終了条件は成立せず、最終行に至った時点でデータがチェック終了コードになるためにステップD97の判定結果がYESになって上記ループ処理を抜けてリターンすることになる。なお、このようにステップD97の判定結果がYESになる場合はACTの値が異常であるため、前述のステップD92の判定結果がNOになった場合と同様に、コマンド異常であるとしてステップD100以降を実行しないでリターンしてしまう。
【0442】
次に、ステップD100以降を説明する。
前述したように、ステップD99までの処理においてコマンドの値(ステップD91で分離されたMODE及びACTのデータ)が異常であると判定されない場合には、ステップD95又はD99を経てステップD100が実行される。
ステップD100では、MODEのデータが単発系コマンド範囲内にあるか判定し、この範囲内ならばステップD101で単発系コマンド処理(後述する)を実行してリターンし、この範囲外ならばステップD102に進む。ここで、MODEのデータとは、ステップD91で分離されて記憶されたMODEのデータである(後述のステップD102等でも同様)。なお、図柄コマンドと変動系コマンドのように組合せで意味をなすコマンドと違い、単独で成立するコマンドを単発系コマンドという。単発系コマンド(単発コマンドという場合もある)には、客待ちデモコマンド、保留数コマンド、図柄停止コマンド、確率情報系コマンド、エラー/不正系コマンド、機種指定コマンドなどがある。この単発コマンドのデータがとり得る範囲が単発系コマンド範囲である。
【0443】
ステップD102に進むと、MODEのデータが図柄系コマンド範囲内にあるか判定し、この範囲内ならばステップD103で図柄系コマンド処理(後述する)を実行してリターンし、この範囲外ならばステップD104に進む。図柄系コマンド(図柄コマンド、或いは飾り特図コマンドという場合もある)は、特図の図柄に関する情報(例えば、特図の停止図柄を何にするかなど)を指令するコマンドであり、この図柄コマンドのデータがとり得る範囲が図柄系コマンド範囲である。
ステップD104に進むと、MODEのデータが変動系コマンド範囲内にあるか判定し、この範囲内ならばステップD105で変動系コマンド処理(後述する)を実行してリターンし、この範囲外ならばステップD106に進む。変動系コマンド(変動コマンド或いは変動パターンコマンドという場合もある)は、特図の変動パターンを指令するコマンドであり、この変動コマンドのデータがとり得る範囲が変動系コマンド範囲である。なお、このステップD104ではMODEの歯抜けチェックは行わない構成でもよいし、行ってもよい。
【0444】
ステップD106に進むと、MODEのデータが大当り系コマンド範囲内にあるか判定し、この範囲内ならばステップD107で大当り系コマンド処理(後述する)を実行してリターンし、この範囲外ならばステップD108aに進む。大当り系コマンドは、大当り中演出に関する動作(ファンファーレ画面やラウンド画面の表示など)を指令するコマンドであり、この大当り系コマンドのデータがとり得る範囲が大当り系コマンド範囲である。
【0445】
ステップD108aに進むと、MODEのデータが先読み演出のための先読み図柄系コマンド範囲内にあるか判定し、この範囲内ならばステップD109aで先読み図柄系コマンド処理(後述する)を実行してリターンし、この範囲外ならばステップD108bに進む。
ステップD108bに進むと、MODEのデータが先読み演出のための先読み変動系コマンド範囲内にあるか判定し、この範囲内ならばステップD109bで先読み変動系コマンド処理(後述する)を実行してリターンし、この範囲外ならばステップD108cに進む。
【0446】
ここで、先読み演出(先読み予告、或いは先読み予告演出ともいう)とは、特図の変動表示ゲームが未実行の始動入賞記憶(始動入賞記憶の保留、或いは単に保留という)に対応する変動表示ゲームがその後実行された時に大当りになるか否か(或いはどんな変動パターンになるか)を、所定の信頼度で遊技者に事前報知すべく、始動入賞記憶の保留表示等を通常と異なる態様で行うなどの演出である。そして、先読み系コマンド(先読み変動系コマンド、及び先読み図柄系コマンド)は、先読み演出の対象となる始動入賞記憶の保留に対応する変動パターンや停止図柄を事前に知らせるコマンドであり、始動入賞時に遊技制御装置100から演出制御装置300に送信される。なお、先読みでない通常の変動系コマンドや図柄系コマンドは、変動表示開始時に遊技制御装置100から演出制御装置300に送信される。
【0447】
ステップD108cに進むと、MODEのデータがテストモード系コマンド範囲内にあるか判定し、この範囲内ならばステップD109cでテストモード系コマンド処理(後述する)を実行してリターンし、この範囲外ならばステップD109cを実行しないでリターンする。
ここで、テストモード系コマンドは、テストモード時の動作を指令するコマンド(テストモードへの移行を指令するコマンドを含む)である。テストモードとは、市場での遊技には一切関係ないが、遊技機出荷前に各種デバイス(演出制御装置が制御する、表示器、音声、LED、モータ、ソレノイド他)が正常に動作するかなどをチェックできるようにする演出制御装置のモードの1つであり、通常遊技状態とは異なるモードである。このテストモードの詳細については、後述する。
【0448】
なお本例では、変動開始時のコマンド受信順が従来構成と異なっている。従来は、変動パターンコマンド→停止図柄コマンド→保留数コマンドという順番だったが、本例では、保留数コマンド→停止図柄コマンド→変動パターンコマンドという順番としている。また、先読み系コマンドの受信順(始動入賞時のコマンド受信順)についても、先読み図柄系コマンド→先読み変動系コマンドという順番としている。ここで、保留数コマンドは変動演出とは直接関係なく独立した内容なので送信順の変更はそれ程重要ではないが、図柄コマンド(停止図柄コマンド)と変動コマンド(変動パターンコマンド)の順を入れ替えたことについては、次のような背景及び効果がある。
【0449】
即ち、変動演出の内容を決めるのは変動パターンコマンドで、停止図柄は演出内容における1つのパラメータでしかないと言うことができ、図柄コマンドを受信しただけでは何も行えない。以前から、変動パターンコマンドを「画面表示変化系のコマンド」、図柄コマンドを「内部パラメータ変更系のコマンド」として扱っているが、従来の構成では、画面表示変化系のコマンドを受信しても、図柄パラメータを受信していない段階のため、直ちに演出準備を行うことができなかった。更に図柄コマンドが規定時間内に送られてくるかも監視しなければならず、演出制御装置の負担を増加させていた。
しかし本例では、その順番を逆にしたので、変動パターンコマンドを受信した時点で、受信済みの図柄情報が合致していれば直ちに演出準備を行うことが可能になったという効果が得られる。なお、図柄コマンドを先に受信しても、画面表示を変更するコマンドではないので先に図柄だけ変わってしまうことはない。RAMに図柄情報を保存するだけだからである。また、図柄コマンドを取りこぼしてしまったとしても前回RAMに保存されている図柄情報が合致するものであれば変動が可能であるという利点もある。これに対して、従来の構成では取りこぼしてしまうと図柄情報欠損となり、変動を行うことができなかった。つまり、本例の場合、コマンド取りこぼしを遊技者に悟られてしまう可能性が限りなく低くなった(従来よりも格段に低くなった)と言える。また、図柄コマンドと変動コマンドは、ペアとなるコマンドであるが、その関係を薄くし独立したコマンドとして扱えるようになったのでプログラムの開発効率が向上したという効果もある。
【0450】
〔単発系コマンド処理〕
次に、上述の受信コマンド解析処理におけるステップD100で実行される単発系コマンド処理の詳細について図103及び図104により説明する。
このルーチンが開始されると、まずステップD181で、MODEのデータ(前述のステップD91で分離された上位バイトのデータ、後述のステップD191、D193、D195、D195a、D197、D199、D204、D207、D207aでも同じ)が客待ちデモを指令するものであるか判定し、客待ちデモを指令するものであるならばステップD181aに進み、客待ちデモを指令するものでない場合にはステップD191に進む。なお、客待ちデモとは、客待ちデモ演出(又は客待ち演出ともいう)のことであり、表示装置41で行われる客待ちデモ表示を含む演出である。客待ちデモ演出では、表示装置41での表示に限られず、他の表示装置での表示やランプ類の点灯(点滅含む)、或いは音声の出力による演出が行われてもよい。
ステップD181aに進むと、ステップD77においてロードした今回のコマンドのデータが正常か判定し、正常ならばステップD182に進み、異常ならばステップD210に進む。なお、このステップD181aでコマンドが異常の場合、ステップD210に進むのではなく、リターンする構成としてもよい。
【0451】
ステップD182に進むと、P機状態(パチンコ機の状態)が客待ちデモ中か判定し、客待ちデモ中ならばステップD210に進み、客待ちデモ中でなければステップD183、D184を順次実行した後にステップD185に進む。
ステップD183では、客待ち演出を行うために客待ち用シナリオデータ設定処理(後述する)を実行する。なお、演出制御装置300の制御処理の説明においてシナリオ制御データとは、特定の演出の流れを制御するために、後述するシナリオ管理領域或いはシナリオ管理領域のアドレス領域に設定されるデータを意味する。このステップD183では、客待ち演出を行うためのシナリオ制御データの設定が行われる。
ステップD184では、P機状態として客待ちA(客待ち状態A)を設定する。なお、客待ち演出には、客待ち状態A、客待ち状態B、客待ちムービー(音無し)、及び客待ちムービー(音有り)がある。
【0452】
ステップD185に進むと、サブ間データ送信中であるか判定し(即ち、異なるパチンコ機の演出制御装置に対してデータ送信中であるか判定し)、送信中であればステップD210に進み、送信中でなければステップD186乃至D190を実行した後にステップD210に進む。
ステップD186では、客待ちデモ同期(客待ちデモ表示におけるサブ間同期)のサブ間コマンド(ブロードキャスト送信設定)を準備し、この準備したサブ間コマンドを編集すべく次のステップD187でサブ間送信データ編集処理(図137で後述する)を実行する。
【0453】
ステップD188では、ack待ちタイマ(後述するステップD521で使用されるタイマ)に初期値を設定する。なお、サブ間コマンドを受信したパチンコ機のサブ基板(演出制御装置)が、サブ間コマンドを送信したパチンコ機のサブ基板に対してackを返すか否かはコマンドの種類で変わる(後述するステップD480a参照)。本例では、客待ちデモ同期のサブ間コマンドには、ackの返信を要求する内容が入っている。即ち本例では、客待ちデモ同期のサブ間コマンドは、ack返答が必要なコマンドである。
ステップD189では、サブ間演出開始待ちタイマ(後述するステップD532で使用されるタイマ)を設定する。
ステップD190では、サブ間送信要求フラグをセットする。サブ間送信要求フラグは、後述するステップD461の判定に使用される。
【0454】
ステップD191に進むと、MODEのデータが特図1保留数の値を指令するものであるか判定し、特図1保留数の値を指令するものであるならばステップD192で特図1保留情報設定処理(後述する)を実行した後にステップD210に進み、特図1保留数の値を指令するものでない場合にはステップD193に進む。
ステップD193に進むと、MODEのデータが特図2保留数の値を指令するものであるか判定し、特図2保留数の値を指令するものであるならばステップD194で特図2保留情報設定処理(説明省略する)を実行した後にステップD210に進み、特図2保留数の値を指令するものでない場合にはステップD195に進む。なお、特図1保留情報設定処理は詳細を後述するが、特図2保留情報設定処理については、特図1保留情報設定処理と同様の処理(特図1か特図2かの違いのみ)であるため説明を省略する。
【0455】
ステップD195に進むと、MODEのデータが演出モード切替を指令するもの(演出モード切替コマンドのデータ)であるか判定し、演出モード切替を指令するものであるならばステップD196で演出モード切替設定処理(説明省略する)を実行した後にステップD210に進み、演出モード切替を指令するものでない場合にはステップD195aに進む。演出モード切替設定処理は、演出モード切替コマンドに応じた動作を行うための制御処理であり、そのためのシナリオデータ設定処理を含む。
ステップD195aに進むと、MODEのデータが機種指定するもの(機種指定コマンドのデータ)であるか判定し、機種指定するものであるならばステップD196aで機種指定設定処理(説明省略する)を実行した後にステップD210に進み、機種指定するものでない場合にはステップD197に進む。
ステップD197に進むと、MODEのデータが停電復旧を知らせるもの(停電復旧時のコマンドのデータ)であるか判定し、停電復旧を知らせるものであるならばステップD198で停電復旧設定処理を実行した後にステップD210に進み、停電復旧を指令するものでない場合にはステップD199に進む。ステップD198の停電復旧設定処理は、例えば「遊技再開しました」といったメッセージを表示装置41に表示したり、ランプ類を所定態様で点滅させたりして遊技者へ停電復旧を報知する等のための処理であり、そのためのシナリオデータ設定処理を含む。
【0456】
ステップD199に進むと、MODEのデータがRAM初期化(初期化スイッチ(RAMクリアスイッチ)をオンした状態での電源投入)を知らせるもの(RAM初期化のコマンドのデータ)であるか判定し、RAM初期化を知らせるものであるならばステップD199aに進み、RAM初期化を指令するものでない場合にはステップD204に進む。なお、RAM初期化のコマンドは、遊技制御装置100がRWMクリアしたことを演出制御装置300に知らせる電源投入コマンドのことであり、前述のステップS28で送信される。この電源投入コマンドは、演出制御装置300に演出状態をクリアさせるのと、RWMクリア報知(RWMクリアされたことを例えば表示装置41に表示する動作)を行わせるために送られる。
ステップD199aに進むと、ステップD77においてロードした今回のコマンドのデータが正常か判定し、正常ならばステップD200乃至D203を順次実行した後にステップD210に進み、異常ならばステップD210に進む。なお、このステップD199aでコマンドが異常の場合、ステップD210に進むのではなく、リターンする構成としてもよい。
ステップD200では、各種初期画面情報を設定する。各種初期画面情報の設定内容は、特図種別・図柄種別をクリアする、特図1保留数及び特図2保留数に0を設定する、現図柄及び停止図柄に例えば左=7、中=5、右=3のはずれ図柄を設定するというものである。
【0457】
ステップD201では、この時点での保留数(=0)に対応する保留用モーション制御テーブルのインデックスを算出してセーブする。ここで、保留用モーション制御テーブルのインデックスとは、保留用モーション制御テーブルの行(レコード)を指定するインデックスである。また、保留用モーション制御テーブルとは、特図の始動記憶の保留表示を行うためのモーション制御テーブルである。また、このステップD201の処理は、特図1保留数と特図2保留数についてそれぞれ実行する。
ここで、モーション制御テーブルとは、ブロック化された各演出(主に演出表示)を実行するための制御テーブルであり、単にモーションテーブルともいう。このモーションテーブルのデータは、PC(パーソナルコンピュータ)で実行できる市販のアプリケーションソフトによってマウス等を使用したグラフィカルな入力操作によって容易に制作できるものであり、ブロック化された演出毎に演出制御装置300のPROM321に予め記憶されている。
ステップD202では、電源投入用シナリオデータ設定処理(説明省略する)を実行する。
また、電源投入用シナリオデータ設定処理には、枠演出装置45のモータの動作位置を初期位置にするなどのための初期化処理、さらには前記RWMクリア報知を実行するための制御処理が含まれてもよい。
ステップD203では、P機状態として客待ちA(客待ち状態A)を設定する。
【0458】
ステップD204に進むと、MODEのデータが特図の図柄停止を指令するもの(即ち、図柄停止コマンド)であるか判定し、特図の図柄停止を指令するものであるならばステップD205、D206を順次実行した後にステップD210に進み、特図の図柄停止を指令するものでない場合にはステップD207に進む。
ステップD205では、図柄停止用シナリオデータ設定処理(説明省略する)を実行する。
ステップD206では、P機状態として通常を設定する。ここで、通常とは、特図の大当り中、特図の変動中、客待ち中(客待ち状態)の何れでもないことを示す。また、ここで通常と設定された後は、主基板からの次のコマンドに応じて例えば特図の変動中になったり、客待ち中になったりする。
【0459】
ステップD207に進むと、MODEのデータが確率情報を知らせるもの(確変情報コマンドのデータ)であるか判定し、確率情報を知らせるものであるならばステップD208で確率情報設定処理を実行した後にステップD210に進み、確率情報を指令するものでない場合にはステップD207aに進む。
ここで、確率情報設定処理は、大当り後に確変になった場合の確変終了時(高確率状態から低確率である通常状態への移行時)の画面切替のための設定処理であり、そのためのシナリオデータ設定処理を含む場合もある。
ステップD207aに進むと、MODEのデータがエラー/不正を知らせるもの(例えばエラー報知コマンドのデータ)であるか判定し、エラー/不正を知らせるものであるならばステップD209でエラー/不正設定処理(説明省略する)を実行した後にステップD210に進み、エラー/不正を指令するものでない場合には図示省略された他の処理のステップ(例えば、MODEのデータを判定する他のステップ)に進む。
ステップD210に進むと、コマンド受信済みフラグをセットし、その後リターンする。但し、このステップD210では、受信したコマンドが異常である場合(即ち、ステップD181a、D199aの判定結果が否定的になってステップD210に進んだ場合)には、コマンド受信済みフラグをセットしないでリターンする構成としてもよい。コマンド受信済みフラグは、起動後の初回コマンドを受信済みであることを示すフラグであり、テストモード移行を指令するコマンドを受信した時に、それが初回コマンドであるか否かを判定するために使用される(後述するステップF112参照)。
なお、この単発系コマンド処理については、図示及び説明を省略しているステップがある。例えば、非変動系の他のコマンドを受信した場合の対応処理等を省略している。また、全てのコマンドに対してシナリオ制御データを設定しているわけではない。例えば、枠開放を示すエラー系コマンドを受信した場合、表示装置41の画面は変化させないためシナリオ制御データの設定は行わない。
【0460】
〔客待ち用シナリオデータ設定処理〕
次に、上述の単発系コマンド処理におけるステップD183で実行される客待ち用シナリオデータ設定処理の詳細について図105により説明する。
このルーチンが開始されると、まずステップD211乃至D234を順次実行した後にリターンする。
ステップD211では、シナリオレイヤー番号0を準備する。ここで、「準備する」とは、後の処理のためにデータを所定の記憶領域に一次記憶して保持しておくことを意味する(後述する他のステップでも同様)。また、シナリオレイヤーは、演出の流れを階層的に制御するための概念的なシナリオの層(レイヤー)である。また、シナリオレイヤー番号は各シナリオレイヤーに付けた番号であり、本例の場合、0から7まである。また本例では、シナリオレイヤー番号0のシナリオレイヤー(以下、シナリオレイヤー0という)は主に背景画像の表示制御に使い、シナリオレイヤー1は左図柄の表示制御に使うといったように、シナリオレイヤー毎に制御対象が基本的に割り当てられている。但し、客待ち演出はシナリオレイヤー0のみを使用し、シナリオレイヤー0の中で客待ち演出用の図柄等のモーション情報も管理するようにしている。
【0461】
ステップD212では、客待ちシナリオ用データテーブルのアドレスを準備する。シナリオ用データテーブル(単にシナリオテーブルともいう)とは、特定の演出の流れを制御するためのデータ(どのモーションテーブルをどんなタイミングで実行するかなどを指定するデータ)が設定されたテーブルであり、演出制御装置300のPROM321に演出毎に予め記憶されている。客待ちシナリオ用データテーブルは、客待ち演出のためのシナリオテーブルであり、例えば図177に示す構成となっている。また、本例のシナリオテーブルは、図177に示すように、オペコードとオペランドのデータ(シナリオデータ)が各行(各レコード)に設定されてなるものである。
ステップD213では、直前のステップD211、D212で準備されたデータ(アドレスやシナリオレイヤー番号のデータ)に基づいて、後述するシナリオデータ設定処理を実行する。
【0462】
ステップD214では、シナリオレイヤー番号1を準備する。
ステップD215では、シナリオ用データテーブルのアドレス(NULL)を準備する。
ステップD216では、直前のステップD214、D215で準備されたデータに基づいて、後述するシナリオデータ設定処理を実行する。
ステップD217では、シナリオレイヤー番号2を準備する。
ステップD218では、シナリオ用データテーブルのアドレス(NULL)を準備する。
ステップD219では、直前のステップD217、D218で準備されたデータに基づいて、後述するシナリオデータ設定処理を実行する。
【0463】
ステップD220では、シナリオレイヤー番号3を準備する。
ステップD221では、シナリオ用データテーブルのアドレス(NULL)を準備する。
ステップD222では、直前のステップD220、D221で準備されたデータに基づいて、後述するシナリオデータ設定処理を実行する。
ステップD223では、シナリオレイヤー番号4を準備する。
ステップD224では、シナリオ用データテーブルのアドレス(NULL)を準備する。
ステップD225では、直前のステップD223、D224で準備されたデータに基づいて、後述するシナリオデータ設定処理を実行する。
【0464】
ステップD226では、シナリオレイヤー番号5を準備する。
ステップD227では、シナリオ用データテーブルのアドレス(NULL)を準備する。
ステップD228では、直前のステップD226、D227で準備されたデータに基づいて、後述するシナリオデータ設定処理を実行する。
ステップD229では、シナリオレイヤー番号6を準備する。
ステップD230では、シナリオ用データテーブルのアドレス(NULL)を準備する。
ステップD231では、直前のステップD229、D230で準備されたデータに基づいて、後述するシナリオデータ設定処理を実行する。
【0465】
ステップD232では、シナリオレイヤー番号7を準備する。
ステップD233では、シナリオ用データテーブルのアドレス(NULL)を準備する。
ステップD234では、直前のステップD232、D233で準備されたデータに基づいて、後述するシナリオデータ設定処理を実行する。
なお、ステップD215、D218、D221、D224、D227、D230、D233でアドレス(NULL)を準備するシナリオレイヤー1〜7は、シナリオ用データテーブルが設定されないシナリオレイヤー、即ち制御されないシナリオレイヤーである。
【0466】
〔シナリオデータ設定処理〕
次に、上述の客待ち用シナリオデータ設定処理におけるステップD213、D216、D219、D222、D225、D228、D231、D234で実行されるシナリオデータ設定処理の詳細について図106により説明する。なお、このシナリオデータ設定処理は各種の演出に対して共通化されており、このシナリオデータ設定処理が実行されるステップは、他のルーチン(例えば、後述するリーチなし変動設定処理のステップD318等)にも多数存在する。「シナリオデータ設定処理」と記載されているステップは、全てこの図106に示すものである。
このルーチンが開始されると、まずステップD241で、準備されたシナリオ用データテーブルのアドレス(例えばステップD212、D215等で準備されたもの)がNULLか判定し、NULLならばステップD247を実行した後にリターンし、NULLでなければステップD242乃至D246を順次実行した後にリターンする。
【0467】
なお、前述の客待ち用シナリオデータ設定処理においては、ステップD213で本ルーチンが実行された場合には直前のステップD212でNULLでない客待ちシナリオ用データテーブルのアドレスが準備されているので、ステップD241の判定結果はNOになってステップD242乃至D246を実行することになり、それ以外のステップD216等で本ルーチンが実行された場合には直前のステップD215等でNULLが準備されているので、ステップD241の判定結果はYESになってステップD247を実行することになる。
【0468】
ステップD242では、準備されたシナリオレイヤー番号(例えばステップD211で準備されたもの、以下同様)に対応するシナリオ管理領域の先頭アドレスを設定する。本例の場合、演出制御装置300のRAM311aには、「シナリオ管理領域のアドレス領域」と「シナリオ管理領域」というシナリオ管理用の記憶領域が設けられる構成となっている。このうち、シナリオ管理領域は、シナリオ用タイマの値を記憶する領域(シナリオ用タイマ領域)と、PB用タイマ(プッシュボタン用タイマ)の値を記憶する領域(PB用タイマ領域)と、PB検知フラグ(プッシュボタン検知フラグ)の値を記憶する領域(PB検知フラグ領域)と、シナリオ用データテーブルのアドレスを記憶する領域(シナリオ用データテーブル領域)とを含む構造である。また、同一構造のシナリオ管理領域が各シナリオレイヤーに対応してシナリオレイヤー分存在し、本例ではシナリオレイヤーが8個あるので、このシナリオ管理領域も8個(シナリオ管理領域0〜7)存在する。上記ステップD242では、このように複数あるシナリオ管理領域のうちの一つを特定するために、準備されたシナリオレイヤー番号に対応するシナリオ管理領域(以下、対応シナリオ管理領域という)の先頭アドレスを設定している。
【0469】
なお、シナリオ管理領域のアドレス領域とは、シナリオレイヤー毎にシナリオ管理領域の先頭アドレスを格納する領域であり、本例ではシナリオレイヤーが8個あるので、これに対応した8個の先頭アドレス(シナリオレイヤー0用アドレス〜シナリオレイヤー7用アドレス)をそれぞれ格納する8個の領域からなる。
次にステップD243では、準備されたシナリオレイヤー番号に対応するシナリオ管理領域のアドレス領域に、直前のステップD242で設定されたシナリオ管理領域の先頭アドレスを格納する(即ち、書き込む)。
【0470】
次にステップD244では、対応シナリオ管理領域のシナリオ用タイマの値として0を書き込む(即ち、値をクリアする)。
次にステップD245では、対応シナリオ管理領域のPB用タイマの値として0を書き込む(即ち、値をクリアする)。なお、対応シナリオ管理領域のPB検知フラグについても値をクリアしてもよいが、必要なとき(PB検知を開始するとき)にクリアすればよいので、ここではPB検知フラグの値の設定は行わない。
次にステップD246では、対応シナリオ管理領域のシナリオ用データテーブル領域に、準備されたシナリオ用データテーブルのアドレス(例えばステップD212で準備されたもの)を書き込む。
一方、ステップD247では、準備されたシナリオレイヤー番号に対応するシナリオ管理領域のアドレス領域にNULLを書き込む。
【0471】
以上のシナリオデータ設定処理によれば、準備されたシナリオレイヤー番号に対応するシナリオ管理用の記憶領域(「シナリオ管理領域のアドレス領域」及び「シナリオ管理領域」)に、これから実行しようとする演出用のシナリオ制御データが設定される。
例えば、前述した客待ち用シナリオデータ設定処理では、ステップD213、D216、D219、D222、D225、D228、D231、D234で上記シナリオデータ設定処理が実行されることによって、シナリオ管理領域のアドレス領域におけるシナリオレイヤー0用アドレスとしてシナリオ管理領域0の先頭アドレスが設定され、残りのシナリオレイヤー1用アドレスからシナリオレイヤー7用アドレスまでにはNULLが設定される。また、シナリオ管理領域0のシナリオ用データテーブル領域にはステップD212で準備された客待ちシナリオ用データテーブルのアドレスが設定される。これにより、シナリオレイヤー0のみで客待ち演出の制御が実行される。
【0472】
〔特図1保留情報設定処理〕
次に、前述の単発系コマンド処理におけるステップD192で実行される特図1保留情報設定処理の詳細について図107により説明する。
このルーチンが開始されると、まずステップD249で、ステップD91で分離されたACTの値が正常範囲か判定し(即ち、ACTの値が示す保留数が0〜4の範囲であるか判定し)、正常範囲でなければリターンし、正常範囲であればステップD250に進む。
ステップD250に進むと、先読み抽選のために今回の保留数コマンドが特図1のものか特図2のものかを示す情報(最新保留情報)として、特図1保留(特図1のものであることを示す情報)を登録する。先読み予告の抽選は始動入賞がある度に行うが、今回抽選処理しようとする始動入賞が特図1か特図2かどちらの始動入賞なのかを判断する必要があり、そのための情報がこの最新保留情報である。このルーチンは特図1の場合であるので、このステップD250では最新保留情報として特図1保留を登録している。
ステップD250を経ると、ステップD251で、その時点の特図1保留数のデータをロードして、このロードしたデータを前保留数として記憶し、次にステップD252で、コマンド(ステップD91で分離されたMODE及びACTのデータ)で指令された保留数の値を特図1保留数として記憶する。
【0473】
そしてステップD252を経ると、ステップD254乃至D257を順次実行した後、ステップD258に進む。
ステップD254では、新保留数に対応する保留用モーション制御テーブルのインデックスを算出してセーブする。なお、インデックスとは、グループを成す複数の記憶領域のうちの何番目かを特定するデータであり、特にモーションテーブルを特定するインデックスをモーションインデックス(詳細後述する)という。このステップD254では、新保留数に対応する保留用モーション制御テーブルを特定するモーションインデックスを算出し、これを記憶する記憶領域(保留用インデックス領域)にセーブする。
ステップD255では、シナリオレイヤー番号6を準備する。
ステップD256では、特図1保留シナリオ用データテーブル(保留X個)のアドレスを準備する。ここで、特図1保留シナリオ用データテーブル(保留X個)とは、新保留数に対応する演出を行うための保留数毎に異なるシナリオテーブルを意味し、新保留数が例えば1個であれば特図1保留シナリオ用データテーブル(保留1個)であり、新保留数が例えば2個であれば特図1保留シナリオ用データテーブル(保留2個)である。
ステップD257では、直前のステップD255、D256で準備されたデータに基づいて、前述したシナリオデータ設定処理を実行する。
【0474】
ステップD258に進むと、保留数が減少したか(即ち、新保留数<前保留数であるか)判定し、減少したならばステップD262に進み、減少していないならばステップD259に進む。
ステップD259に進むと、新保留数に対応する色情報領域に保留通常点灯の表示パターンを設定し、次のステップD260ではP機状態が大当り系か判定する。ステップD260の判定の結果、大当り系であればリターンし、大当り系でなければ次のステップD261で始動口入賞音を出力要求し、その後リターンする。なお、大当り系には、ファンファーレ中、ラウンド中、インターバル中、及エンディング中が含まれる。このため、P機状態がファンファーレ中、ラウンド中、インターバル中、及エンディング中の何れかであれば、ステップD260の判定結果は肯定的になり、ステップD261を実行しないでリターンすることになる。
【0475】
ステップD262に進むと、特図1先読み情報領域をシフトし、次のステップD263で色情報領域をシフトし、その後リターンする。
なお、ステップD258からステップD259に進む場合(保留数が減少していない場合)は、主に特図1の始動入賞があった場合(即ち、保留数が増加した場合)であるので、この始動入賞による保留表示(保留されている始動記憶の表示)や演出用の入賞音出力を行うためにステップD259及びD261が実行される。また、ノイズ゛等で保留数コマンドを取りこぼした後など、同数の保留数コマンド゛を受信した場合(即ち、保留数が増加も減少もしていない場合)もステップD259に進むが、この場合は、新たな入賞として入賞演出を行うためにステップD259及びD261が実行される。但し、大当り中(ファンファーレ中、ラウンド中、インターバル中、及エンディング中を含む)には、ステップD260で分岐して入賞音出力を行わない。また、ステップD262に進むのは、特図1の始動記憶の保留数が減少した場合であるため、先読み表示(例えば大当り予告や変動パターン予告)を行っている保留数の表示をずらして表示したり、先読み情報(先読みした変動パターンや停止図柄の情報及び先読み演出有無等の各種情報(フラグ等))を保留数に対応する領域にずらすために、ステップD262、D263が実行される。
演出制御装置300では、前述のステップD109a、D109b(先読み図柄系コマンド処理、先読み変動系コマンド処理)において、各保留毎に、先読み系コマンドの解析結果として上記先読み情報を設定している。そして、この先読み情報の格納領域は、主基板で変動開始時に乱数格納領域をシフトするのと同様に、前記保留数の減少に対応させてシフトさせる必要があり、この格納領域のシフトを行っているのが、上記ステップD262である。またステップD263は、先読み情報に応じた保留表示色(即ち、先読み演出のために先読み演出の有無や内容によって異ならせている保留表示の色)の情報の格納領域を同様にシフトさせるための処理である。
【0476】
〔図柄系コマンド処理〕
次に、上述の受信コマンド解析処理におけるステップD103で実行される図柄系コマンド処理の詳細について図108により説明する。
このルーチンが開始されると、まずステップD171で、MODEのデータ(前述のステップD91で分離された上位バイトのデータ、後述のステップD172でも同じ)に対応する特図種別(特図1か特図2かの情報)を設定する。例えば、MODEのデータが85hならば特図1を特図種別として設定し、MODEのデータが86hならば特図2を特図種別として設定する。このように特図1か特図2かはMODEのデータから判定できるので、このステップD171では、MODEのデータから特図種別を判定して設定する。
【0477】
次にステップD172で、MODEのデータに対応する図柄種別設定テーブルを設定する。図柄種別設定テーブルは、図柄コマンドに対応した図柄種別(後述するはずれ図柄、16R確変大当り図柄等の図柄のカテゴリ)を判定するためのテーブルであり、図柄コマンドのACTIONのデータ(例えば、11h〜1Bhの11種類ある)と図柄種別との対応関係が定義されたテーブルである。特図1と特図2で図柄の割合が変わるので(確変割合は同じ)、MODE毎にこの図柄種別設定テーブルを分けて設けており、ステップD172では、複数ある図柄種別設定テーブルからMODEのデータに対応するものを選択して設定する。
【0478】
次にステップD173では、ステップD172で設定された図柄種別設定テーブルに基づいて、ACTのデータ(前述のステップD91で分離された下位バイトのデータ)に対応する図柄種別を取得し、図柄種別情報としてセーブする。ステップD173を経ると、ステップD174に進む。
なお、こうして図柄コマンドを受けてステップD171やD173で設定された特図種別や図柄種別の情報が、図柄コマンドに続いて受信された変動コマンドに対する後述のステップD111、D112の処理で使用される。そして、特図種別の情報は、ステップD111の判定に使用されても、ステップD171が新たに実行されるまで以前にステップD171で設定されたデータが記憶保持される構成となっている。また、図柄種別の情報は、ステップD112で使用された後も、ステップD173が新たに実行されるまで、以前にステップD173で設定されたデータが記憶保持される構成となっている。
ステップD174に進むと、ステップD173でセーブされた図柄種別情報が未定義データか判定し、未定義ならばリターンし、未定義でない場合にはステップD175、D176を順次実行した後にステップD177に進む。
ステップD175では、ステップD210と同様にコマンド受信済みフラグをセットする。
ステップD176では、ACTのデータに対応する機種コードを設定する。変動表示ゲームが行われる度に送信される停止図柄のコマンドには、機種指定コードが含まれている。例えば、同じはずれ図柄のコマンドでも、Zという機種はACTのデータが「11h」であり、FAという機種は「21h」であり、GLという機種は「31h」であるというように、ACTのデータ(2桁の16進数)の1桁目(下位のデータ)が図柄種別を示し、ACTのデータの2桁目(上位のデータ)が機種の違いを示す情報(機種指定コード「1」、「2」、「3」、…)となっている。これを利用してステップD176では、停止図柄のコマンドを受信する度に、このコマンドの情報(機種指定コード)から機種コードを設定している。なお、サブ基板(演出制御装置)は主基板(遊技制御装置)からの指示によってリアルタイムで内部の機種別仕様に対応する構成となっている。例えば、図柄の色を機種毎に変えたり(「5」図柄がZでは赤数字、GLでは青数字の図柄で表示されるなど)、GLでしか出現しないリーチ演出を設定したりすることによって、共通のサブ基板を使用しつつ、シリーズ機種で演出を変えられるようにしている。また、主基板(のプログラム)はシリーズ毎に変える必要があるので、その仕様に対応する機種指定コードが、電源投入時(RAMクリア、停電復旧ともに)と変動時の図柄コマンドに含まれて、送られてくる。
ステップD177に進むと、ステップD176で設定された機種コードと現在の機種コード(機種コード領域に現在セーブされている機種コード)とが同じか判定し、同じでない場合にはステップD178を実行後にリターンし、同じである場合はステップD178を実行しないでリターンする。
ステップD178では、ステップD176で設定された機種コードを機種コード領域にセーブする。
このように本ルーチンによれば、図柄系コマンドを受信する度に、特図種別や図柄種別が設定されるとともに、機種コードも現在の機種コードと違う場合にリアルタイムに更新設定される。このため、電源投入時の機種コードのコマンドがノイズなどにより正しく処理されなかった場合や、遊技機電源投入後にサブ基板だけリセットされたような場合でも、正しい機種コードに基づく機種毎の正しい演出が信頼性高く実現される。
【0479】
〔変動系コマンド処理〕
次に、上述の受信コマンド解析処理におけるステップD105で実行される変動系コマンド処理の詳細について図109により説明する。
このルーチンが開始されると、まずステップD111で特図種別が未確定か判定し、未確定ならばリターンし、未確定でない場合(即ち、特図種別が設定されている場合)にはステップD112で変動パターン対応図柄判定処理(後述する)を実行してステップD113に進む。特図種別とは、特図の種別が特図1か特図2かを示す情報であり、図柄系コマンド処理の前述したステップD171で設定される情報である。
【0480】
ステップD113に進むと、ステップD112の変動パターン対応図柄判定処理(後述する)で返される情報(有効コマンド情報又は無効コマンド情報)に基づいて、変動コマンドと図柄種別が不整合であるか否か判定し、不整合である場合(無効コマンド情報が返された場合)にはリターンし、不整合でない場合(有効コマンド情報が返された場合)にはステップD113aを実行後にステップD113bに進む。
なお、図柄種別とは図柄のカテゴリを意味し、図柄種別には、例えばはずれ図柄、16R確変大当り図柄などがある。また、上記ステップD113における不整合とは、はずれの変動コマンド(変動パターンコマンド)を受信したのに、16R確変大当り図柄の図柄コマンドを受信していた時など、演出を行う上で矛盾してしまう組み合わせ(変動コマンドと図柄種別の組み合わせ)であることを意味する。
ステップD113aでは、受信したコマンドに応じた変動パターン種別(特図の変動表示演出の大まかな分類であり、後述する変動パターン種別データによって決まる)を選択する変動パターン分類処理(後述する)を実行する。
ステップD113bに進むと、上記ステップD113aの変動パターン分類処理(後述するステップD367)で返された変動パターン種別データが無効データか判定し、無効データならばリターンし、無効データでなければステップD114乃至D117を順次実行した後にリターンする。
【0481】
ステップD114では、変動コマンドに応じた演出を行うために、変動演出設定処理(後述する)を実行する。
またステップD115では、P機状態(パチンコ機の状態)として特図変動中を設定する。ここで、特図変動中とは、特図の変動中(客待ちデモ中や大当り中、或いはファンファーレ中等でないこと)を表している。
ステップD116では、ステップD210と同様にコマンド受信済みフラグをセットする。
ステップD117では、先読み演出回数(先読み実行回数)がゼロでなければ先読み演出回数を−1更新する処理(先読み演出回数を1だけ減らす処理)を実行する。ここで、先読み演出回数を−1更新する理由は、ステップD117が実行されるのは有効な変動系コマンドを受信した場合(これから特図の変動が開始され、始動入賞記憶の保留数が1個減る場合)であるためである。
【0482】
〔変動パターン対応図柄判定処理〕
次に、上述の変動系コマンド処理のステップD112で実行される変動パターン対応図柄判定処理の詳細について図110により説明する。
このルーチンが開始されると、まずステップD121で、図柄系コマンド処理の前述したステップD173でセーブされた図柄種別情報をロードし、ステップD122に進む。
なお、ここでの図柄種別情報は、特図(飾り図柄)の変動表示ゲームの停止図柄の図柄種別を示す情報である。本例の場合、図柄種別は、「はずれ図柄」、「2R確変大当り図柄」、「16R確変大当り図柄」、「11R確変大当り図柄」、及び「11R通常大当り図柄」の5種類に分類することができ、詳細には例えば「16R確変大当り図柄」はさらにA〜Eの5種類に分かれており、また「11R確変大当り図柄」はさらにA〜Cの3種類に分かれているために全部で11種類の停止図柄パターンがある。但し、この態様に限定されず、例えば他のラウンド数の大当り図柄や、小当たり図柄などの種別が設定されていてもよく、この図柄種別の設定は機種の仕様によって変化する。ここで、2Rや16Rというのは大当りのラウンド数を示し、確変大当り図柄は大当り後に確変状態(大当りとなる確率が通常状態よりも高められた状態)となる大当り図柄であり、通常大当り図柄は大当り後に通常状態(確変状態でない状態)となる大当り図柄である。また、はずれ図柄は変動表示ゲームの結果がはずれとなる図柄(大当りにならない図柄)である。
【0483】
ステップD122に進むと、MODEのデータ(前述のステップD91で分離された上位バイトのデータ)が変動系コマンド範囲内にあるか判定し、この範囲内ならばステップD123に進み、この範囲外ならばコマンド異常であるとしてステップD133に進む。このステップD122では、前述したステップD104と例えば同じ判定を再度実行している。なお、このステップD122ではMODEの歯抜けチェックは行わない構成でもよいし、行ってもよい。また、このステップD122と前述したステップD104の判定内容を異ならせてもよい。例えば、前述したステップD104とこのステップD122のうちの何れか一方のみでMODEの歯抜けチェックを行う態様としてもよい。
【0484】
ステップD123に進むと、ステップD121でロードした図柄種別情報がはずれ図柄か判定し、はずれ図柄ならばステップD124でMODEのデータに対応するはずれ時ACT整合チェックテーブルを設定してステップD141に進み、はずれ図柄でないならばステップD125に進む。ここで、はずれ時ACT整合チェックテーブルは、はずれ図柄の場合にACT(コマンドの下位バイトデータ)としてあり得る全てのデータを含むテーブルである。
【0485】
なお、PROM321には図173の左側に示すようなはずれ時ACT整合チェックアドレステーブルが登録されており、上記ステップD124では、このはずれ時ACT整合チェックアドレステーブルから対応するはずれ時ACT整合チェックテーブルのアドレスを取得して設定する。はずれ時ACT整合チェックアドレステーブルは、変動系コマンド範囲の各MODEの値に対応して、はずれ時ACT整合チェックテーブルを特定するアドレス(この場合、はずれ時ACT整合チェックテーブルの先頭アドレス)が定義されたものである。そして、はずれ時ACT整合チェックテーブルとは、例えば図173の右側に示すものであり、はずれ図柄の場合に、対応するMODEの値に対して有効な全てのACTの値(ACTIONの値)が先頭アドレスから順に登録されたものであり、MODEの値毎に設けられている。図173の右側に示すACT整合チェックテーブルは、はずれ図柄の場合であってMODEの値がCBh(10.4秒通常変動リーチ)の場合に対応するものであり、このMODEの値(CBh)に対して有効な全てのACTの値(02h、03h、04h、05h等)が、テーブルの先頭アドレス(最初の行)から順に登録され、テーブルの最終アドレス(最後の行)にはチェック終了コード(−1)が登録されている。
また、このようなACT整合チェックアドレステーブルとACT整合チェックテーブルは、はずれ図柄以外の図柄種別(「2R確変大当り図柄」、「16R確変大当り図柄」、「11R確変大当り図柄」、及び「11R通常大当り図柄」)についても同様に設けられており、後述のステップD126,D128,D130,D132においてステップD124と同様に使用される。
【0486】
ステップD125に進むと、ステップD121でロードした図柄種別情報が2R確変大当り図柄か判定し、2R確変大当り図柄ならばステップD126でMODEのデータに対応する2R確変大当り時ACT整合チェックテーブルを設定してステップD141に進み、2R確変大当り図柄でないならばステップD127に進む。ここで、2R確変大当り時ACT整合チェックテーブルは、2R確変大当り図柄の場合にACT(コマンドの下位バイトデータ)としてあり得る全てのデータを含むテーブルである。
【0487】
ステップD127に進むと、ステップD121でロードした図柄種別情報が16R確変大当り図柄か判定し、16R確変大当り図柄ならばステップD128でMODEのデータに対応する16R確変大当り時ACT整合チェックテーブルを設定してステップD141に進み、16R確変大当り図柄でないならばステップD129に進む。ここで、16R確変大当り時ACT整合チェックテーブルは、16R確変大当り図柄の場合にACT(コマンドの下位バイトデータ)としてあり得る全てのデータを含むテーブルである。
【0488】
ステップD129に進むと、ステップD121でロードした図柄種別情報が11R確変大当り図柄か判定し、11R確変大当り図柄ならばステップD130でMODEのデータに対応する11R確変大当り時ACT整合チェックテーブルを設定してステップD141に進み、11R確変大当り図柄でないならばステップD131に進む。ここで、11R確変大当り時ACT整合チェックテーブルは、11R確変大当り図柄の場合にACT(コマンドの下位バイトデータ)としてあり得る全てのデータを含むテーブルである。
【0489】
ステップD131に進むと、ステップD121でロードした図柄種別情報が11R通常大当り図柄か判定し、11R通常大当り図柄ならばステップD132でMODEのデータに対応する11R通常大当り時ACT整合チェックテーブルを設定してステップD141に進み、11R通常大当り図柄でないならばコマンド異常であるとしてステップD133に進む。ここで、11R通常大当り時ACT整合チェックテーブルは、11R通常大当り図柄の場合にACT(コマンドの下位バイトデータ)としてあり得る全てのデータを含むテーブルである。
ステップD133に進むと、無効コマンド情報を返してリターンする。
【0490】
ステップD141に進むと、ステップD141、D144をループ端とするループ処理(繰り返し処理)を実行する。つまり、ステップD144で分岐することによって、ステップD142とステップD143を順次実行する動作を当該ACT整合チェックテーブル(直前のステップD124,D126,D128,D130,D132のうちの何れかで設定されたもの)の最後まで繰り返す。
【0491】
ここで、ステップD142では、ステップD124,D126,D128,D130,D132の何れかで取得され後述のステップD143で更新されるACT整合チェックテーブルのアドレス(以下、ACT整合チェックテーブルアドレスという)に対応するデータ(ACT整合チェックテーブル内の対応する行のデータ)がステップD91で分離されたACTの値に一致するか判定し、一致すればこの繰り返しループ(ステップD141、D144をループ端とするループ処理)を抜けてステップD146に進み、一致しなければステップD143に進む。
ステップD143に進むと、ACT整合チェックテーブルアドレスを次レコードに更新し、ステップD144に進む。
ステップD144に進むと、当該ACT整合チェックテーブルの最後のデータまでステップD142が繰り返し実行されたか判定し、最後のデータまでステップD142が繰り返された場合にはステップD145に進み、そうでない場合にはステップD141に戻って処理を繰り返す。具体的には、ステップD144では、ステップD143で更新されたACT整合チェックテーブルアドレスに対応するデータがチェック終了コード(−1)であるか判定し、チェック終了コードであれば最後まで繰り返されたとしてステップD145に進み、チェック終了コードでなければステップD141に戻って処理を繰り返す。
【0492】
このステップD141乃至D144の繰り返しループの処理によって、当該ACT整合チェックテーブル内の何れかのデータと、前述のステップD91で分離されたACTのデータとが一致すれば、ステップD146に進み、そうでない場合(一致するデータが当該ACT整合チェックテーブルに一つもない場合)には、ステップD145に進む。
そしてステップD145では、異常であるとして無効コマンド情報を返し、リターンする。またステップD146では、正常であるとして有効コマンド情報の値を返す。
【0493】
なお、前述のステップD113では、上記ステップD133、D145、D146の何れかで返された情報によって、変動コマンドと図柄種別の整合性が判定される。
例えば、事前にはずれ図柄の図柄コマンドを受信していてステップD121でロードされる図柄種別情報がはずれ図柄の場合に、ステップD91で分離された変動コマンドのMODEの値がCBhでありACTの値が06hであるとすると、図173のACT整合チェックテーブルの5行目のデータが06hであるため、上記ステップD142が5回繰り返されたときに上記ステップD142の判定結果がYESになってステップD146に進み、有効コマンド情報が返されてステップD113の判定結果はNO(整合)となる。また、同様の場合に、ステップD91で分離されたMODEの値がCBhでありACTの値が例えば01hであるとすると、図173のACT整合チェックテーブルには01hが存在しないため、上記ループ処理が何度繰り返されても上記ステップD142の判定結果はNOであり、最終行に至った時点でデータがチェック終了コードになるために上記ループ処理を終了してステップD145に進み、無効コマンド情報が返されてステップD113の判定結果はYES(不整合)となる。また、ステップD91で分離されたMODEの値が変動系コマンド範囲でない場合(ステップD122がNOの場合)や、ステップD91で分離されたMODEの値が変動系コマンド範囲である(ステップD122がYES)にもかかわらずステップD121でロードされた図柄種別情報が何れの図柄種別でもない場合(ステップD123,D125,D127,D129,D131が全てNOの場合)には、ステップD133で無効コマンド情報が返されてステップD113の判定結果はYES(不整合)となる。
このように、上記変動パターン対応図柄判定処理(前述のステップD112)と前述のステップD113によれば、停止図柄に合った変動パターンコマンドになっているかという整合性のチェックが行われる。停止図柄の種類(前述したはずれ図柄、16R確変大当り図柄などの図柄種別)によって行われる変動が異なるので図柄に合った変動パターンコマンドとなっているかを事前にチェックし、整合性がとれていなければ前述したステップD113a、D114、D115等を実行しないで異常な変動表示演出を行わないようにするためである。なお、変動パターンは、必ずしも完全に図柄毎できれいに分かれているわけではなく、例えば16R確変大当り図柄と2R確変大当り図柄で共用される変動パターンなどもある。
【0494】
〔変動パターン分類処理〕
次に、前述の変動系コマンド処理におけるステップD113aで実行される変動パターン分類処理の詳細について図111により説明する。
このルーチンが開始されると、まずステップD361でMODEのデータが変動系コマンドであるか判定し、変動系コマンドであればステップD362に進み、変動系コマンドでなければステップD368に進む。
ステップD362に進むと、ACTのデータは有効範囲か判定し、有効範囲であればステップD363を実行してステップD364に進み、有効範囲でなければステップD368に進む。
【0495】
ステップD363では、MODEのデータに対応する変動パターンチェックデータを取得する。変動パターンチェックデータは、変動系コマンドのMODEのデータ毎に設定され、機種内で使用されていないMODEのデータに対しては変動パターンチェックデータとして0が設定されているものである。
ステップD364に進むと、ステップD363で取得した変動パターンチェックデータが0か判定し、0ならばステップD368に進み、0でなければステップD365乃至D367を順次実行した後にリターンする。
【0496】
ステップD365では、MODEのデータに対応する変動パターン種別テーブルを設定する。
ステップD366では、ステップD365で設定された変動パターン種別テーブルに基づいてACTのデータに対応する変動パターン種別データを取得する。
ステップD367では、ステップD366で取得した変動パターン種別データを返してリターンする。
ステップD368に進むと、変動パターン種別データとして0を返してリターンする。
【0497】
ここで、変動パターン種別テーブルは、例えば図178に示すものであり、MODEのデータ毎に設けられている。図178には、MODEのデータが12秒前半通常変動の場合に設定される変動パターン種別テーブルC3と、MODEのデータが10.4秒前半通常変動の場合に設定される変動パターン種別テーブルCBと、MODEのデータが12.8擬似連1変動の場合に設定される変動パターン種別テーブルCCとが、具体例として図示してある。これら変動パターン種別テーブルは、変動パターン種別データがACTの上位データと下位データに対応してマトリックス(行列)状に配置されたもので、ACTの上位データ0〜4に対応して行が決まり、ACTの下位データ0〜Fに対応して列が決まることで、変動パターン種別データが決まる構成となっており、テーブルの大きさは5行×16列となっている。変動パターン種別データの内訳例は次のとおりである。即ち、0:無効データ、1:リーチなし変動、2:ノーマルリーチ、3:女性系リーチ、4:女性舞リーチ、5:武将系リーチ、6:武将発展系リーチ、7:面完成武将発展系リーチ、8:戦場リーチ、9:面完成戦場リーチ、10:一騎討ちリーチ、11:面完成一騎討ちリーチ、12:群雄リーチ、13:決着リーチ、…といったように設定されている。
【0498】
そして図178の例の場合、例えばMODEのデータが12秒前半通常変動でありACTのデータが01hであると、ステップD365で変動パターン種別テーブルC3が選択されてセットされ、ステップD366では変動パターン種別テーブルC3の1行2列(ACTのデータ01hに対応位置)にある「1」(リーチなし)が変動パターン種別データとして取得される。MODE及びACTが他のデータである場合も、同様である。
なお、本実施例では後半変動パターン(ACTのデータ)の数が01h〜4Bhの範囲となっているので上記のサイズ(5行×16列)のテーブルとなっているが、これは一例であり、もっと細かく分けた構成でもよいし、或いは逆に例えば変動パターン種別データが同じ値になる部分をまとめて大まかに分けた構成としてもよい。
【0499】
また、変動パターン種別データは、MODE及びACTのデータに対応した予告振分のテーブル等を後述するステップD270c、D270f等で準備するために、MODE及びACTのデータが指令する変動パターンがどの分類に属するのかを示すデータである。即ち、コマンドの値から変動パターンの系統をチェックし、対応する予告振り分けのテーブル等を設定できるようにするために、この変動パターン種別データがある。これは、リーチの種類等で予告の発生率が変化するためである。
また、変動パターン種別テーブルは、前述したように変動パターン種別データを決定するためのテーブルである。そして、この変動パターン種別テーブルにおいて、MODE及びACTのデータの組み合わせが存在しない所は図178に示すように変動パターン種別データが0となっている。このため、MODE及びACTのデータの組み合わせが存在しない場合、ステップD367では、ステップD368と同様に0を返すことになる。また、こうして0が返された場合、例えば通常外れ(リーチなし変動)と同様の扱いとする。通常外れと同様の扱いにすれば、確定したコマンドに万が一異常があっても、特図を一応変動させることができ、遊技者に不安を抱かせないようにすることができるなどの利点がある。但し、0が返された場合、通常外れとしないで、例えば変動系コマンド処理のステップD113bで無効データであると判定してリターンする構成として、変動開始設定を行わない態様も有り得る。このようにすると、コマンド異常の場合には特図を変動させないようにすることができる。
【0500】
〔変動演出設定処理〕
次に、前述の変動系コマンド処理におけるステップD114で実行される変動演出設定処理の詳細について図112乃至図114により説明する。
このルーチンが開始されると、まずステップD270aで演出振分結果領域を全て0クリアし(予告に関する全ての記憶領域のデータをゼロにリセットし)、ステップD270bに進む。
ステップD270bでは、変動パターン分類処理(ステップD113a)で返された変動パターン種別データがリーチなし変動であるか判定し、リーチなし変動であればステップD270c、D270d、D270eを順次実行後にステップD271に進み、リーチなし変動でなければステップD270f、D270g、D270hを順次実行後にステップD271に進む。
ステップD270cでは、その時点で設定されている機種コード及び特図種別とその時点の演出モードに対応する前半予告振分グループアドレステーブル(例えば図179上段に示すテーブル)を設定する。なお、ステップD270cに進む場合には、リーチなし変動であり、図柄種別は必ずはずれ図柄であるため、ステップD270cでは図柄種別は特に参照しなくてもよい。なお演出モードは、演出制御装置300が管理する遊技モード(本実施例では遊技制御装置からも遊技モードのコマンドが送られてくる)に相当し、機種によって当然異なるが、本例では基本モード(K)の他に、例えば軍議モード、決戦モードなどがある。
【0501】
また、前半予告振分グループアドレステーブルは、後述する前半予告振分グループテーブルのアドレスを選択するためのテーブルであり、この前半予告振分グループテーブルのアドレスのデータがマトリックス状に配列されてなる。この前半予告振分グループアドレステーブルは、例えば図179に示すものであり、テーブルの各行のデータが同一のMODEの値(前半変動パターンを指定するデータ)に対応している。そして、変動パターン種別がリーチなし変動である場合、この前半予告振分グループアドレステーブルの各列には、図179上段に示す具体例(機種コード1/特図1/リーチなし変動/基本モード)のように、同一の保留数(特図の変動表示ゲームが未実行である始動入賞記憶の数)に対応するデータが配置されている。即ち、リーチなし変動の場合の前半予告振分グループアドレステーブルは、行を決めるパラメータがMODEの値であり、列を決めるパラメータが保留数となっている。一方、変動パターン種別がリーチなし変動以外である場合、この前半予告振分グループアドレステーブルの各列には、図179下段に示す具体例(機種コード1/特図1/リーチ変動/基本モード/はずれ図柄)のように、同一の変動パターン種別に対応するデータが配置されている。即ち、リーチなし変動以外の場合の前半予告振分グループアドレステーブルは、行を決めるパラメータがMODEの値であり、列を決めるパラメータが変動パターン種別となっている。
これにより本例の場合には、リーチなし変動の場合にのみ、各変動中に出現する予告演出の抽選内容(具体的には各予告演出態様の出現率)が保留数に応じて変化することになる。
【0502】
ステップD270dでは、ステップD270cで設定された前半予告振分グループアドレステーブルの行のアドレスとして、MODEの値(ステップD91で分離した値、以下同様)に対応する行のアドレスを算出する。
ステップD270eでは、ステップD270cで設定された前半予告振分グループアドレステーブルの列のアドレスとして、その時点の特図種別の保留数に対応する列のアドレスを算出する。
【0503】
一方、ステップD270fでは、その時点で設定されている機種コード、特図種別及び図柄種別とその時点の演出モードに対応する前半予告振分グループアドレステーブル(例えば図179下段に示すテーブル)を設定する。
ステップD270gでは、ステップD270fで設定された前半予告振分グループアドレステーブルの行のアドレスとして、MODEの値に対応する行のアドレスを算出する。
ステップD270hでは、ステップD270fで設定された前半予告振分グループアドレステーブルの列のアドレスとして、その時点の変動パターン種別(ステップD113aの変動パターン分類処理で返されたデータ、以下同様)に対応する列のアドレスを算出する。
【0504】
ステップD271に進むと、直前の三つのステップ(ステップD270c、D270d、D270e又はステップD270f、D270g、D270h)の設定又は算出結果に基づいて、対応する前半予告振分グループアドレステーブルにおける対応の行と列の位置から前半予告振分グループテーブルのアドレスを取得して準備し、その後ステップD272に進む。例えば、図179の上段の場合(リーチなし変動の例)、MODEの値が「C0h」で保留数が4ならば、ステップD270dで1行目(最上行)が算出され、ステップD270eで4列目(最右列)が算出されて、前半予告振分グループテーブルのアドレスC0_1K(Kは基本モードを表す)がステップD271で取得され準備される。また、図179の下段の場合(リーチあり変動の例)、MODEの値が例えば「CBh」(10.4秒通常変動リーチ)で変動パターン種別が女性系リーチならば、ステップD270gで「CBh」の行が算出され、ステップD270fで左から2列目が算出されて、前半予告振分グループテーブルのアドレスCB_2KがステップD271で取得され準備される。また、図179の下段の場合(リーチあり変動の例)、MODEの値が例えば「CCh」(12.8秒擬似連1リーチSU4)で変動パターン種別が面完成武将発展系リーチならば、ステップD270gで「CCh」の行が算出され、ステップD270fで右から2列目が算出されて、前半予告振分グループテーブルのアドレスCC_4KがステップD271で取得され準備される。
【0505】
ステップD272に進むと、ステップD271で取得したアドレスが未定義データか判定し、未定義データならばステップD273を実行しないでステップD274に進み、未定義データでない場合にはステップD273を実行した後にステップD274に進む。
ステップD273では、ステップD271で準備されたアドレスの前半予告振分グループテーブルを使って前半変動のために予告抽選処理(後述する)を実行する。
なお、未定義データの場合にステップD273(前半変動のための予告抽選処理)を実行しないのは、予告演出を出現させない場合だからである。例えば、図179の上段の場合、MODEの値が「C0h」で保留数が4ならば、前述したように前半予告振分グループテーブルのアドレスC0_1KがステップD271で取得されて予告演出が行われるが、同じMODEの値でも保留数が1〜3の場合には、未定義データに設定されていて予告演出が実行されない構成となっている。
【0506】
上記ステップD271までの処理によれば、前半予告振分グループテーブルのアドレスが選定され、こうして選定された当該前半予告振分グループテーブルに基づいてステップD273の予告抽選処理(前半変動の予告抽選処理)が実行される。ここで、前半予告振分グループテーブルは、図180図181に示す具体例のように、一つの予告振分テーブルのアドレスと、当該アドレスに対応する一つの演出振分結果の結果領域のアドレスとが同一行に対応させて複数配置されたテーブルである。一つの変動表示ゲームについて行われる予告振分(予告演出の有無及び態様を決定するための抽選)は、変動パターンによっては非常に多数の異なるもの実行され、それに伴って予告振分グループテーブルの行数も膨大になる。図180は、前述した図179下段の前半予告振分グループアドレステーブルにおいてアドレスCB_2Kが選定された場合の予告振分グループテーブルCB_2Kを例示している。また図181は、前述した図179下段の前半予告振分グループアドレステーブルにおいてアドレスCC_4Kが選定された場合の予告振分グループテーブルCC_4Kを例示している。
【0507】
次に、ステップD274からステップD278までは、後半変動の予告演出を抽選するための処理である。なお、特図の変動表示ゲームの後半変動とはいわゆるリーチアクション(例えば、特図の複数列の表示領域のうち特定領域を除く表示領域が大当りとなる特別結果態様(特別な図柄の組合せ)で変動表示が停止していて、特定領域のみで変動表示している状態)の変動表示である。一方、特図の変動表示ゲームの後半変動とはリーチアクション開始前までの変動表示である。
ステップD274では、その時点で設定されている機種コード、特図種別及び図柄種別とその時点の演出モードに対応する後半予告振分グループアドレステーブル(例えば図183に示すテーブル)を設定し、ステップD275に進む。
ここで、後半予告振分グループアドレステーブルは、後半予告振分グループテーブルのアドレスを選択するためのテーブルであり、図183の具体例のように、後半予告振分グループテーブルのアドレスのデータ(図183ではテーブル名を図示してアドレスのデータ自体は図示省略している)が変動パターン種別毎に配列されてなる。即ち、この後半予告振分グループアドレステーブルでは、テーブルの各行のデータが各変動パターン種別にそれぞれ対応している。なお、後半予告振分グループテーブルは、図180等に例示した前半予告振分グループテーブルと同様の構成であるので、具体例の図示は省略する。
【0508】
ステップD275に進むと、直前のステップD274で設定された後半予告振分グループアドレステーブルにおける、その時点の変動パターン種別に対応する行の位置から後半予告振分グループテーブルのアドレスを取得して準備し、その後ステップD276に進む。例えば、図183に示す具体例(機種コード1/特図1/はずれ図柄/基本モード)の場合、変動パターン種別が「02h」のノーマル系(ノーマル系はずれ)であるならば、2行目の後半予告振分グループテーブルのアドレスがステップD275で取得され準備される。また、図183に示す後半予告振分グループアドレステーブルが設定された場合、例えば変動パターン種別が「01h」のリーチなし変動であるならば、1行目(最上行)の未定義データが後半予告振分グループテーブルのアドレスとしてステップD275で取得され準備される。
【0509】
ステップD276に進むと、ステップD275で取得したアドレスが未定義データか判定し、未定義データならばステップD277を実行しないでステップD278に進み、未定義データでない場合にはステップD277を実行した後にステップD278に進む。
ステップD277では、ステップD275で準備されたアドレスの後半予告振分グループテーブルを使って後半変動のために予告抽選処理(後述する)を実行する。
なお、未定義データの場合にステップD277(後半変動のための予告抽選処理)を実行しないのは、例えばリーチなし変動ならば後半変動の予告を設定する必要が無いからである。
【0510】
ステップD278では、予告キャンセル確認処理(後述する)を実行し、その後ステップD279に進む。なお、予告キャンセル確認処理は、簡単に説明しておくと、重複すべきでない予告演出同士が選出された状態とならないように、一旦抽選された予告演出を場合によりキャンセルする処理である。
ステップD279に進むと、演出モードに対応する基本BGM番号(基本BGMの曲番号)や装飾番号(装飾ランプ等による演出の種類を示す番号)を設定し、次にステップD280で予告演出設定処理1(後述する)を実行し、その後ステップD281に進む。
【0511】
ステップD281に進むと、ここまでの処理(特にステップD273、D278)で決定された前半変動種別が通常変動か否か判定し、通常変動であればステップD282に進み、通常変動でなければ図113において波線で図示省略した他の処理のステップ(前半変動種別が通常変動でない場合の各種変動の処理)に進む。
なお、前半変動種別とは、同一のMODE(例えば12秒前半通常変動)の中で、演出制御装置側で振り分けている変動予告種類のことである。また、「通常変動」における「通常」とは、いわゆるすべりや短縮変動等の特殊な変動ではないという意味である。また煩雑を避けるため、ここでは、前半変動種別が通常(すべりや短縮でない)の場合の予告振り分けの様子のみをフローチャート(図113)に記載している。そして、前半変動種別が通常変動でない場合の各種変動の処理は、ステップD281の判定結果がNOになった流れ以降のステップ(図113において波線で省略している)で実行されるが、この流れ以降の処理を実行した後には、ステップD290に進む構成となっている。また、大当り、はずれのいずれの場合でも、前半変動が通常になり得るので、各予告用シナリオデータ設定処理(後述するステップD286乃至D289)は大当りとはずれの何れの場合でも実行される可能性がある。但し、大当り専用の前半変動なども考えられるので、常に両用の設定処理ばかりとは限らない。
【0512】
ステップD282に進むと、ここまでの処理(特にステップD273、D277、D278、以下同様)で決定された予告種別(後述する演出振分け結果領域のデータ;予告データ)が巻物予告を指定するものであるか判定し、巻物予告でない場合にはステップD283に進み、巻物予告である場合にはステップD286で巻物予告用シナリオデータ設定処理(説明省略)を実行した後にステップD290に進む。
ステップD283に進むと、ここまでの処理で決定された予告種別が巻物文字予告を指定するものであるか判定し、巻物文字予告でない場合にはステップD284に進み、巻物文字予告である場合にはステップD287で巻物文字予告用シナリオデータ設定処理(説明省略)を実行した後にステップD290に進む。
【0513】
ステップD284に進むと、ここまでの処理で決定された予告種別がPB予告を指定するものであるか判定し、PB予告でない場合にはステップD285に進み、PB予告である場合にはステップD288でPB予告用シナリオデータ設定処理(後述する)を実行した後にステップD290に進む。
ステップD285に進むと、ここまでの処理で決定された予告種別がフラッシュバック予告を指定するものであるか判定し、フラッシュバック予告でない場合にはステップD290に進み、フラッシュバック予告である場合にはステップD289でフラッシュバック予告用シナリオデータ設定処理(説明省略)を実行した後にステップD290に進む。
【0514】
ステップD290に進むと、特図種別が特図2か否かを判定し、特図2ならばステップD291、D292を実行した後にステップD295に進み、特図2でない場合(即ち、特図1の場合)にはステップD293、D294を実行した後にステップD295に進む。
ステップD291では、特図2に対応する保留用モーション制御テーブルを特定するモーションインデックスを算出し、これを記憶する記憶領域(保留用インデックス領域)にセーブする。
ステップD292では、第4図柄用(特図2変動)モーション制御テーブルを特定するモーションインデックスを算出し、これを記憶する記憶領域(第4図柄インデックス領域)にセーブする。
ステップD293では、特図1に対応する保留用モーション制御テーブルを特定するモーションインデックスを算出し、これを記憶する記憶領域(保留用インデックス領域)にセーブする。
ステップD294では、第4図柄用(特図1変動)モーション制御テーブルを特定するモーションインデックスを算出し、これを記憶する記憶領域(第4図柄インデックス領域)にセーブする。
【0515】
なお、図176は演出制御装置のROM321に記憶されたモーション用リストテーブルの一例である。モーション用リストテーブルは、多数あるモーションテーブルに関するデータを各行(各レコード)に配置したモーションテーブルのデータリストである。このモーション用リストテーブルテーブルの各行のデータがそれぞれ一つのモーションテーブルに関するデータである。このモーション用リストテーブルの各行には、データ項目(データのカテゴリ)として、フレーム数、モーションコマンド数、モーションテーブル名、ビヘイビア数、及びビヘイビアテーブル名がある。但し、このカテゴリ設定は一例であり、これ以外のパラメータを設定してもよい。各データ項目の内容は以下のとおりである。
・フレーム数(表示フレーム数)は、当該モーションテーブルは何フレーム分のモーションデータ(モーションテーブルを構成するデータ)が定義されているかを示す。
・モーションコマンド数は、当該モーションテーブル内に定義されているコマンド数を示す。
・モーションテーブル名は、当該モーションテーブルの名称(=アドレス)を示す。
・ビヘイビア数は、当該モーションテーブル内で使用するビヘイビアの数(種類)を示す。
・ビヘイビアテーブル名は、当該モーション制御時のビヘイビア(処理のアドレス)を定義してあるビヘイビアテーブルの名称(=アドレス)を示す。
なお、ビヘイビア数が0なら、当然ビヘイビアテーブルは不要である。
ここで、ビヘイビアとは、オブジェクト(表示要素)の動作を設定する機能である。本例では、主にモーションテーブル上に定義されている画像データ(キャラクタデータ)を状況に応じて変更するために使用している。
【0516】
また、図176におけるモーション用リストテーブルの右側には、モーションインデックスの値と対応する表示内容を示している。この場合、前述したステップD292では、第4図柄用(特図2変動)モーション制御テーブルを特定するモーションインデックスの値として62が算出される。また、前述したステップD294では、第4図柄用(特図1変動)モーション制御テーブルを特定するモーションインデックスの値として61が算出されることになる。
【0517】
次にステップD295に進むと、特図停止図柄領域の値を現図柄領域にセーブする。ここで、特図停止図柄領域の値とは、後述するステップD354で設定されるデータである。また、現図柄領域は、表示する現図柄の図柄番号を記憶する記憶領域(その時点で画面上に表示する現図柄の図柄番号が入っている記憶領域)であり、この記憶領域の値(現図柄の図柄番号)は変動表示中に変動に伴って次々と更新される。なお、特図の変動表示は、前回の変動表示の停止図柄から次回の変動表示(客待ち中の図柄表示含む)を開始するが、この動作を確実に行うため、このステップD295で前回の変動表示の停止図柄をセーブして次回の変動表示に利用する構成となっている。これは、特に変動表示中に新たな変動コマンドを受信した場合に意味がある。即ち、変動表示中に新たな変動コマンドを受信した場合、このステップD295の処理があるため、受信時に表示されていた図柄から次の変動を開始するのではなく、前回変動で停止するはずだった図柄に差し替えられて変動を開始する。この場合、仮にステップD295が無ければ、その時点(変動コマンド受信時点)で表示されていた図柄から始まり、どの図柄が停止するはずだったのか遊技者に分からないという問題が生じる。しかし本例であれば、ステップD295があることによって、前回変動で停止するはずだった図柄に差し替えられて変動を開始することになり、遊技者は前回の停止図柄が分かるため、このような問題が解消される。
【0518】
次に、ステップD295を経るとステップD296に進み、ステップD91で分離されたMODEのデータ(前半変動パターンのデータ)が12秒前半通常変動を指令するものか否か判定し、12秒前半通常変動を指令するものであればステップD297に進み、12秒前半通常変動を指令するものでなければステップD299に進む。ここで、「12秒前半通常変動」における「通常」とは、短縮変動等の特殊な変動ではないという意味である。
なお本例では、12秒前半通常変動の場合には、リーチアクション無しの変動パターンしかあり得ない。この場合、リーチアクションを行わないので後半変動の時間値は0として設定し、合計で12秒となる変動パターン(即ち、12秒通常変動;ここでの「通常」はリーチではない変動という意味である)として定義している。つまり、ステップD91で分離されたACTのデータ(後半変動パターン)が示す後半変動時間値は0秒変動ということになる。
【0519】
ステップD297に進むと、前記ACTのデータがリーチアクション無し(0秒変動)を指令するものか判定し、リーチアクション無しであればステップD298でリーチなし変動設定処理(後述する)を実行した後にリターンし、リーチアクション無しでない場合には異常であるのでステップD298を実行しないでリターンする。
ステップD299に進むと、前記MODEのデータが(前半変動パターン)が10.4秒前半通常変動(ここでの「通常」は短縮変動等ではないという意味)を指令するものか否か判定し、10.4秒前半通常変動を指令するものであればステップD300に進み、10.4秒前半通常変動を指令するものでなければステップD308に進む。なお本例では、10.4秒前半通常変動の場合には、リーチアクション有りの変動パターンしかあり得ない。この場合、リーチアクションの演出内容に伴って後半変動の時間値は変化するので、合計で(10.4+α)秒となる変動パターンとして定義される。同一のMODEに対してACTのデータ(後半変動パターン)は複数の種類があり、この数は遊技機毎の仕様により異なる。
【0520】
ステップD300に進むと、前記ACTのデータ(後半変動パターン)がノーマル−1はずれの変動を指令するものか否か判定し、ノーマル−1はずれを指令するものであればステップD304でノーマル−1はずれ設定処理(説明省略)を実行した後にリターンし、ノーマル−1はずれの変動を指令するものでなければステップD301に進む。なお、ノーマル−1はずれは、ノーマルリーチアクション有りで外れる変動パターンである。
ステップD301に進むと、前記ACTのデータ(後半変動パターン)がノーマル+1はずれの変動を指令するものか否か判定し、ノーマル+1はずれを指令するものであればステップD305でノーマル+1はずれ設定処理(説明省略)を実行した後にリターンし、ノーマル+1はずれの変動を指令するものでなければステップD302に進む。なお、ノーマル+1はずれも、ノーマルリーチアクション有りで外れる変動パターンである。
【0521】
ステップD302に進むと、前記ACTのデータ(後半変動パターン)が武将−1はずれの変動を指令するものか否か判定し、武将−1はずれを指令するものであればステップD306で武将−1はずれ設定処理(説明省略)を実行した後にリターンし、武将−1はずれの変動を指令するものでなければステップD303に進む。なお、武将−1はずれは、武将リーチアクション有りで外れる変動パターンである。
【0522】
ステップD303に進むと、前記ACTのデータ(後半変動パターン)が武将発展−1はずれの変動を指令するものか否か判定し、武将発展−1はずれを指令するものであればステップD307で武将発展−1はずれ設定処理(説明省略)を実行した後にリターンし、武将発展−1はずれの変動を指令するものでなければ図114において波線で省略された他のステップに進む。なお、武将発展−1はずれは、武将発展リーチアクション有りで外れる変動パターンである。また、ステップD303の判定結果がNOになった流れ以降(波線で図示省略した箇所)では、10.4秒前半通常変動の場合の他のリーチ演出(例えば大当りになる場合の変動表示演出含む)についてステップD303、D307等と同様の処理が実行され、前記ACTのデータが何れにも該当しない場合には異常であるのでリターンする。
【0523】
一方、ステップD299を経てステップD308に進むと、前記MODEのデータが(前半変動パターン)が12.8秒擬似連1変動を指令するものか否か判定し、12.8秒擬似連1変動を指令するものであればステップD309に進み、12.8秒擬似連1変動を指令するものでなければ図114において波線で省略された他のステップに進む。なお、ステップD308の判定結果がNOになった流れ以降(波線で図示省略した箇所)では、前記MODEのデータが上記以外である場合の変動表示演出についてステップD303、D307等と同様の処理が実行され、前記MODEのデータが何れにも該当しない場合には異常であるのでリターンする。
【0524】
ステップD309に進むと、前記ACTのデータ(後半変動パターン)が武将−1はずれの変動を指令するものか否か判定し、武将−1はずれを指令するものであればステップD310でノーマル−1はずれ設定処理(説明省略)を実行した後にリターンし、武将−1はずれの変動を指令するものでなければ図114において波線で省略された他のステップに進む。なお、ステップD309の判定結果がNOになった流れ以降(波線で図示省略した箇所)では、12.8秒擬似連1変動の場合の他のリーチ演出(例えば大当りになる場合の変動表示演出含む)についてステップD309、D310と同様の処理が実行され、前記ACTのデータが何れにも該当しない場合には異常であるのでリターンする。
【0525】
〔予告抽選処理〕
次に、上述の変動演出設定処理におけるステップD273及びD277でそれぞれ実行される予告抽選処理の詳細について図115により説明する。このルーチンは、前述のステップD271、D275でそれぞれ準備した予告振分グループテーブルの各行にアドレスが設定されている予告振分テーブルを使用した予告振分(予告演出の抽選)を順次実行する処理である。以下では、リーチあり変動の場合に、ステップD271で準備した予告振分グループテーブルに基づいて、ステップD273で当該予告抽選処理を実行する場合を例に挙げて説明する。なお、ステップD277で実行される場合も同様である(但し、ステップD277の場合は予告振分グループテーブルがステップD275で準備される)。そのため、ステップD277で実行される場合の詳細説明は省略する。
【0526】
このルーチンが開始されると、まずステップD371aで、ステップD271で準備された予告振分グループテーブルにおける指定行(振分グループアドレスが指定する行)から振分テーブルアドレス(予告振分テーブルのアドレス)を取得してステップD371bに進む。ここで、振分グループアドレスは、予告振分グループテーブルにおける行を示すアドレスであり、当該予告抽選処理のルーチンが開始されて最初にステップD371aが実行される際には、この振分グループアドレスは予告振分グループテーブルにおける先頭行(1行目)を指定するデータとなっている。何故なら、ステップD275で準備されるアドレスは、例えば予告振分グループテーブルの先頭アドレス(先頭行を指定するアドレス)であり、このステップD275で準備されたアドレスが振分グループアドレスの初期値として扱われる構成だからである。なお、この振分グループアドレスは、後述するステップD380が実行される毎に、次レコード(次の行)のアドレスデータに更新され、これにより予告振分グループテーブルにおける指定行はその都度先頭行から離れる方向に順次移動する。
【0527】
なお、ステップD271で準備される予告振分グループテーブルは、例えば図180及び図181に示すものであることは、既述したとおりであるが、これら図中のテーブルを表す表の右側に記載してあるのは、各行に対応する予告振分種別である。このように予告振分グループテーブルの各行は、予告振分種別に対応している。このため、例えばステップD271で予告振分グループテーブルのアドレスCB_2Kが準備されたとすると、上記ステップD371aが最初に実行される際には、図181の予告振分グループテーブルにおける1行目(予告振分種別が「//A1;役物SU予告振分」である行)が指定される(この際、前述した振分グループアドレスはこの1行目を指すデータとなっている)。そして、ステップD380が実行される度に振分グループアドレスによる指定行が図181において下方の行に順次変更され、次は2行目(予告振分種別が「A2;役物SU1色パターン振分」である行)、その次は3行目(予告振分種別が「A3;役物SU2色パターン振分」である行)といったように予告振分種別も変更される。また、このような予告振分グループテーブルの最終行には、図示省略しているが、最終行を示すデータである「−1」が予告振分テーブルのアドレスとして設定されている。
【0528】
次に、予告振分テーブルについて説明する。予告振分テーブルは、例えば図182示すように、一つの予告振分種別に対応した一行分のデータテーブルであり、振分値が図では横並びに配列されたものである。この予告振分テーブルの特定の振分値の横方向の配置位置(何列目か)を示すアドレスを、以下では、予告振分テーブルの現アドレスという。また、この予告振分テーブルの振分値は、本例では乱数値が0乃至999の1000種類あるので、同じ行にある振分値を全て加算すると1000になるように設定されており、それぞれの振分値は0乃至999の範囲内の数である。
【0529】
ここで、図182の上段に示す前半予告振分テーブルC4_1(基本モード/SP系はずれ)は、例えば図180及び図181のテーブルの11行目(予告振分種別が「C4;予告振分」である行)が振分グループアドレスにより指定されたときに、ステップD371aにおいて選定される(即ち、ステップD371aで当該前半予告振分テーブルC4_1の先頭アドレスが振分テーブルアドレスとして取得される)。つまり、図180に示す予告振分グループテーブルCB_2Kと、図181に示す予告振分グループテーブルCC_4Kとで、同じ予告振分種別「C4;予告振分」に対して、図182の上段に示す前半予告振分テーブルC4_1が共通に使われる。つまり本実施例では、ある予告の出現割合に対する振分内容が同一の振分仕様の場合には、変動パターンが異なるものであっても一つのテーブルを使い回す(共用する)構成となっており、これにより膨大な振分データを格段に少なくすることができる。但し、停止図柄が異なるものである場合には、同一のテーブルを別々に設けるようにしている。図柄が異なる場合には、図柄の出現率を大きく変更するようなことはできないので、予告振分テーブルの方を変更することで仕様(各予告の出現割合等)の変更に対処しなければならないが、このように停止図柄が異なる場合に予告振分テーブルを別々に設けておけば、そのような変更に容易に対処できる。
【0530】
また、図182の中段に示す前半予告振分テーブルC5_1(基本モード/SP系はずれ)は、例えば図180のテーブルの13行目(予告振分種別が「C5;巻物色振分」である行)が振分グループアドレスにより指定されたときに、ステップD371aにおいて選定される(即ち、ステップD371aで当該前半予告振分テーブルC5_1の先頭アドレスが振分テーブルアドレスとして取得される)。
また、図182の下段に示す前半予告振分テーブルC5_4(基本モード/SP系はずれ)は、例えば図181のテーブルの13行目(予告振分種別が「C5;巻物色振分」である行)が振分グループアドレスにより指定されたときに、ステップD371aにおいて選定される(即ち、ステップD371aで当該前半予告振分テーブルC5_4の先頭アドレスが振分テーブルアドレスとして取得される)。
【0531】
つまり、図180に示す予告振分グループテーブルCB_2Kと、図181に示す予告振分グループテーブルCC_4Kとで、同じ予告振分種別「C5;巻物色振分」であるにもかかわらず、予告振分テーブルは、図182の中段と下段に示す異なるものが別々に使われる。これは、リーチの種類に応じて振分率(上記振分値の配分であり、予告演出の出現率に対応する)を異ならせるためである。つまり、ある予告の出現割合(出現率)に対する振分内容が変動パターンに応じて異なる振分仕様の場合(例えばリーチの種類などによって異なる場合)には、変動パターンに応じて別個の異なる予告振分テーブルが設けられる構成となっている。
なお、ステップD371aで取得される振分テーブルアドレスは、選定された予告振分テーブルの先頭アドレス(特定の振分値の横方向の配置位置の1列目を示すアドレス)であり、これが予告振分テーブルの現アドレスの初期値となる。
【0532】
次に、ステップD371aより以降を説明する。
ステップD371aを経るとステップD371bに進み、ステップD371aで取得した振分テーブルアドレスの値が「−1」かどうか判定し、「−1」ならば準備された予告振分グループテーブルの最終行に到達しており当該予告振分グループテーブルの全ての行(最終行除く)に対して処理が終了したのでリターンする。一方、このステップD371bの判定結果が「−1」でない場合には、処理が終了していないので、ステップD372乃至D374を順次実行した後に、ステップD375に進む。
【0533】
ステップD372では、保存領域となる演出振分結果領域のアドレスを取得する。即ち、準備された予告振分グループテーブルにおいて、振分グループアドレスで指定される行にある保存領域のアドレス(例えば図180のテーブルの右側の列にあるデータ)を取得する。
ステップD373では、振分番号を0(初期値)に設定する。
ステップD374では、0乃至999からランダムに一つ選択した値をrdmとして格納する処理を実行する。
【0534】
ステップD375に進むと、その時点での現アドレスの振分値とrdmの値とを比較し、前記rdmの値が前記振分値以上である場合にはステップD376に進み、前記rdmの値が前記振分値未満である場合にはステップD379に進む。
ステップD376に進むと、前記rdmの値から前記振分値を減算した値を新たなrdmの値として設定し、次にステップD377で予告振分テーブルの現アドレスを1だけ増加させる更新(予告振分テーブルにおいて1列分だけ現アドレスを先頭から離れる方向にずらす更新)を実行し、次いでステップD378で振分番号を1だけ増やす更新を行った後に、ステップD375に戻って処理を繰り返す。
【0535】
これらステップD375乃至D378の処理によれば、rdmの値が前記振分値未満になるまで、rdmの値から前記振分値を減算して現アドレスを更新する処理が繰り返されることになる。そして、rdmの値が前記振分値未満になったとき(即ち、ステップD375の判定結果がNOになったとき)の現アドレスの更新回数(即ち、振分番号の値)は、予告振分テーブルにおける特定の1つの位置(即ち、1つの振分け結果)を示すものとなり、これにより振分け結果が乱数に基づいて選択されることになる。
【0536】
ステップD379に進むと、現アドレスの更新回数(即ち、前記ステップD376、D377等を繰り返し実行した回数)に相当する振分番号を予告データとし、この予告データを演出振分け結果領域の対応する領域(ステップD372で取得したアドレス)にセーブし、その後ステップD380に進む。
ステップD380に進むと、前述したように、振分グループアドレスを次レコード(次の行)のアドレスに更新し、その後ステップD371aに戻ってステップD371aから処理を繰り返す。。
なお、演出振分け結果領域は、上記予告データのような演出振分け結果をセーブするRAM311a内の領域である。
【0537】
なお、上述の予告抽選処理におけるステップD379では、予告データ(現アドレスの更新回数から決まる振分番号の値)によって特定される演出内容(演出パターン)に対応する各種情報(予告の種類、巻物の色、SU予告回数など)を演出振分け結果領域内の所定の記憶領域(例えば、図180に示す演出振分け結果領域(A1)、(A2)、…)にそれぞれ格納する。
上述の予告抽選処理によれば、ステップD271で準備された予告振分グループテーブルに設定されている全ての予告振分種別に対して振分け結果が予め選択され、この振分け結果に応じた演出内容を指定する各種情報が予め所定の記憶領域にそれぞれ格納されることになる。
【0538】
例えば、図180に示した予告振分グループテーブルCB_2Kが準備され、振分グループアドレスによる指定行が11行目(予告振分種別が「C4;予告振分」)である場合には、図182の上段に示す前半予告振分テーブルC4_1(基本モード/SP系はずれ)の先頭アドレス(図182の上段のテーブルの最左方の1列目「なし」(振分値;50)の位置を示すアドレス)がステップD371aで振分テーブルアドレスとして取得される。その後、ステップD374で生成された乱数値rdmが0〜49の範囲内の時は1列目の「なし」が、50〜149の範囲内の時は2列目の「巻物」が、150〜299の範囲内の時は3列目の「巻物文字」が、300〜549の範囲内の時は4列目の「PB」が、550〜999の範囲内の時は5列目の「フラッシュ」が、前述のステップD375乃至D379の処理によって選択され、対応する振分番号が、予告演出振分結果として所定の演出振分け結果領域(C4)にセーブされる。この例では振分番号(予告データ)は0〜4の何れか(「なし」が0、「巻物」が1、「巻物文字」が2、「PB」が3、「フラッシュ」が4)になる。
【0539】
以上説明した予告振分の処理(予告抽選処理)は、他の予告振分テーブルについても同様である。例えば、図182の中段に示す前半予告振分テーブルC5_1の先頭アドレスがステップD371aで振分テーブルアドレスとして取得されると、ステップD374で生成された乱数値rdmが0〜599の範囲内の時は1列目の「青」が、600〜999の範囲内の時は2列目の「緑」が選択され、この場合、右端側の2列(「金1」、「金2」)は振分値が0なので選択されることはなく(即ち、出現率はゼロ)、この例では振分番号(予告データ)は0〜1の何れかになる。また、図182の下段に示す前半予告振分テーブルC5_4の先頭アドレスがステップD371aで振分テーブルアドレスとして取得されると、ステップD374で生成された乱数値rdmが0〜349の範囲内の時は1列目の「青」が、350〜699の範囲内の時は2列目の「緑」が、700〜999の範囲内の時は3列目の「金1」が選択され、この場合、右端の1列(「金2」)は振分値が0なので選択されることはなく、この例では振分番号(予告データ)は0〜2の何れかになる。
【0540】
なお、図182は予告振分テーブルのごく一部の具体例であり、予告振分テーブルは、当り・はずれ、変動の種類毎に沢山ある。また、予告振分テーブルにおける実際の振分けは他にも膨大な数があるので(例えば、カットイン予告の振分け、カットイン予告のキャラ(キャラはキャラクタを意味する)についての振分け等)、説明の便宜上図では抜粋部分のみを記載している。
また、行う可能性のある全ての予告振分種別(即ち、準備される全ての予告振分グループテーブルに設定されている全ての予告振分種別)について抽選処理(ステップD372乃至D379)を実行する。このため、例えば図182の場合、中段又は下段の予告振分テーブルで巻物の色を決めるが、巻物演出を含む予告演出を行うか否か(或いはどのような態様の予告演出を行うか)については、例えば上段の予告振分テーブルによる抽選結果によることになる。いいかえると、上段の予告振分テーブルによる抽選結果が1列目の「なし」になって巻物演出を実行しないことになっても、中段又は下段の予告振分テーブルによる抽選処理(巻物演出の際の巻物の色を抽選する処理)は実行する。
【0541】
〔予告キャンセル確認処理〕
次に、上述の変動演出設定処理におけるステップD278で実行される予告キャンセル処理の詳細について図116により説明する。この予告キャンセル処理の詳細は、演出の見栄えが悪いなどの理由で、重複すべきでない予告演出同士が選出された状態とならないように、一旦抽選された予告演出を場合により実行前にキャンセルする処理である。なお図116では、説明に必要な一部の処理のみを図示し、他の処理は波線によって省略している。
このルーチンが開始されると、まずステップF1で、演出モードが基本モードか判定し、基本モードならばステップF2に進み、基本モードでない場合にはステップF3に進む。
【0542】
ステップF2に進むと、予告振分け結果領域(A1)(例えば図180の1行目の演出振分け結果領域(A1)のこと)にセーブされた予告データが、「予告なし」を示す値「0」であるか判定し、「予告なし」の値であればステップF4、F5を実行しないでステップF6に進み、「予告なし」の値でなければ(即ち、例えばSU1〜SU5のステップアップ予告であれば)ステップF4に進む。
ステップF4に進むと、予告振分け結果領域(C4)(例えば図180の11行目の演出振分け結果領域(C4)のこと)にセーブされた予告データがフラッシュバック予告を示す値「4」であるか(即ち、例えば図182の上段に示す予告振分テーブルで右端の列の「フラッシュ」が抽選されているか)を判定し、フラッシュバック予告の値であればステップF5を実行後にステップF6に進み、フラッシュバック予告の値でなければ(即ち、例えば図182の上段に示す予告振分テーブルで「なし」、「巻物」、「巻物文字」、「PB」のうちの何れかが抽選されていれば)ステップF5を実行しないでステップF6に進む。
【0543】
ステップF5では、予告振分け結果領域(A1)の予告データを予告なしの値「0」に書きかえる。
以上のステップF2、F4、F5によれば、基本モードにおいて前述のステップD273及びD277でSU1〜SU5のステップアップ予告とフラッシュバック予告の両方が抽選されると、その後上記ステップF5が実行されてSU1〜SU5のステップアップ予告の抽選が取り消され、SU1〜SU5のステップアップ予告の実行が事前にキャンセルされる。これにより、SU1〜SU5のステップアップ予告とフラッシュバック予告の両方の演出が重複して実行されることにより演出の見栄えが悪くなるなどの弊害が生じることが防止される。
【0544】
次にステップF6に進むと、予告振分け結果領域(A8)(例えば図180の6行目の演出振分け結果領域(A8)のこと)にセーブされた予告データが、背景チェンジ予告を示す値であるか判定し、背景チェンジ予告の値であればステップF7に進み、背景チェンジ予告の値でなければステップF14に進む。
ステップF7に進むと、予告振分け結果領域(C4)(例えば図180の11行目の演出振分け結果領域(C4)のこと)にセーブされた予告データがPB予告を示す値「3」であるか(即ち、例えば図182の上段に示す予告振分テーブルで左から3列目の「PB」が抽選されているか)を判定し、PB予告の値であればステップF8を実行後にステップF9に進み、PB予告の値でなければ(即ち、例えば図182の上段に示す予告振分テーブルで「なし」、「巻物」、「巻物文字」、「フラッシュ」のうちの何れかが抽選されていれば)ステップF8を実行しないでステップF6に進む。
【0545】
ステップF8では、予告振分け結果領域(A8)の予告データを予告なしの値「0」(背景チェンジ予告を実行しない値)に書きかえる。
以上のステップF6、F7、F8によれば、基本モードにおいて前述のステップD273及びD277で背景チェンジ予告とPB予告の両方が抽選されると、その後上記ステップF8が実行されて背景チェンジ予告の抽選が取り消され、背景チェンジ予告の実行が事前にキャンセルされる。これにより、背景チェンジ予告とPB予告の両方の演出が重複して実行されることにより演出の見栄えが悪くなるなどの弊害が生じることが防止される。
【0546】
次にステップF9に進むと、現時点で先読み予告実行中か判定し、先読み予告実行中であればステップF10に進み、先読み予告演出の実行中でなければステップF14に進む。
ステップF10に進むと、先読み抽選結果領域(V1)(予告振分種別V1に対応する演出振分け結果領域のこと)にセーブされた予告データが、連撃図柄予告1を示す値であるか判定し、連撃図柄予告1の値であればステップF13に進み、連撃図柄予告1の値でなければステップF11に進む。
ステップF11に進むと、先読み抽選結果領域(W1)(予告振分種別W1に対応する演出振分け結果領域のこと)にセーブされた予告データが、連撃図柄予告1を示す値であるか判定し、連撃図柄予告1の値であればステップF13に進み、連撃図柄予告1の値でなければステップF12に進む。
ステップF12に進むと、先読み抽選結果領域(W2)(予告振分種別W2に対応する演出振分け結果領域のこと)にセーブされた予告データが、連撃図柄予告2を示す値であるか判定し、連撃図柄予告2の値であればステップF13に進み、連撃図柄予告2の値でなければ図中波線で示された基本モード中の他の処理に進む。
【0547】
ステップF13に進むと、予告振分け結果領域(A8)の予告データを予告なしの値「0」(背景チェンジ予告を実行しない値)に書きかえ、その後ステップF14に進む。
以上のステップF9乃至F13によれば、基本モードにおいて前述のステップD273及びD277で背景チェンジ予告と連撃図柄予告(連撃図柄予告1又は連撃図柄予告2)の両方が抽選されると、その後上記ステップF13が実行されて背景チェンジ予告の抽選が取り消され、背景チェンジ予告の実行が事前にキャンセルされる。これにより、背景チェンジ予告と連撃図柄予告の両方の演出が重複して実行されることにより演出の見栄えが悪くなるなどの弊害が生じることが防止される。
なお、ステップF14に進むと、基本モードにおける、その他のキャンセルすべき予告演出の組み合わせの確認等を同様に行う。
また、前記ステップF1を経てステップF3に進むと、基本モード以外の各演出モードに対応するキャンセル確認処理を同様に行う。
【0548】
〔リーチなし変動設定処理〕
次に、上述の変動演出設定処理におけるステップD298で実行されるリーチなし変動設定処理の詳細について図117により説明する。なお、本実施例では、MODE=12秒前半通常変動は、はずれの場合しかない。このため、このルーチンで設定される後述の図柄生成フラグははずれ図柄の指示しかない。
このルーチンが開始されると、まずステップD311で、以前の処理(ステップD270a乃至D273等)で設定された変動前半種別が超短縮変動であるか判定し、超短縮変動であればステップD312でリーチ+1はずれの図柄生成フラグを準備してステップD314に進み、超短縮変動でなければステップD313ではずれバラケ目の図柄生成フラグを準備してステップD314に進む。
なお、超短縮変動とは、主基板からの指令は12秒前半通常変動でも、その中でリーチの動きを行うことをサブ基板で選択する場合があり、そのような場合の変動の例である。
また、バラケ目とは、特図を構成する複数の図柄がリーチや大当りとなる図柄でない状態(リーチ形の組み合わせでなければ「776」のような組み合わせも含む)を意味する。
【0549】
ステップD314に進むと、ステップD314乃至D330を順次実行した後にリターンする。
ステップD314では、ステップD312又はD313で準備された図柄生成フラグに基づいて停止図柄設定処理(後述する)を実行する。
【0550】
ステップD315では、前記ACT、前記変動前半種別及び先読み情報に対応するシナリオテーブルのアドレス(シナリオテーブルの名称)を図柄変動シナリオテーブル領域にセーブする。図柄変動シナリオテーブル領域とは、これから使用する図柄変動のシナリオテーブルのアドレスを一時的に格納しておく演出制御装置300のRAM311aの記憶領域であり、左図柄用領域、右図柄用領域、中図柄用領域に分かれ、さらに各図柄用領域は1st(序盤)用、2nd(前半)用、3rd(後半)用に分かれていて、一つのシナリオテーブルのアドレスを格納する領域が合計9個(=3×3個)ある。一方、演出制御装置300のPROM321には、遊技制御装置から受信したコマンドと前記前半変動種別に応じて図柄変動用のシナリオテーブルを選択するためのテーブル(以下、図柄変動リストテーブルという)が先読み情報及びコマンド毎(ACTのデータ毎)に登録されている。図184に、この図柄変動リストテーブルの一例(はずれリーチなし変動時)を示す。ステップD315では、まず先読み情報及び前記ACTに対応する図柄変動リストテーブルを選択し、次に選択した図柄変動リストテーブルにある複数の設定パターンの中から前記変動前半種別に対応する設定パターンを選択し、選択した設定パターンのシナリオテーブルのアドレスを図柄変動シナリオテーブル領域にセーブする。
【0551】
例えば、図184の場合にはインデックスが0〜7の8パターン(通常変動、右3変動、右2変動、左3変動、左2変動、中煽り変動、群雄変動、及び超短縮変動)ある。
そして、前記変動前半種別が例えば通常変動であったときにステップD315では、図図184の右側に示すインデックスの値が0の最上段の設定パターンを選択し、例えば左図柄の1st(序盤)用領域にはMS_LZ100を、左図柄の2nd(前半)用領域にはMS_LZ300を、左図柄の3rd(後半)用領域にはNULLをそれぞれセーブし、右図柄及び中図柄についても同様に最上段にあるシナリオテーブルのアドレスをセーブすることになる。
なお本願では、前半変動時間内の図柄の動きだしの期間を「序盤」(1st)、前半変動時間内の残りの期間を「前半」(2nd)としている。同一の前半変動時間でも図柄の動きだしが、そのまま下にスクロールする場合や一旦上にホッピングしたりする場合(予告の一種)もあるので、動きが一通りにならないよう「序盤+前半=前半変動」という構成になっている。そして、後半変動時間を「後半」(3rd)としている。また本実施例は、このように、特図変動時の演出を時間的に複数に分割した各期間について演出内容をそれぞれ設定し、各期間の演出内容の組合せとして特図変動時の演出全体を構成する組合せ式となっている。これにより、制御データ記憶用の不揮発性メモリ(本例ではPROM321)に格納しなければならない総データ量が減るというメリットがある。即ち、例えば、少しでも動きが違う演出内容毎にテーブルを全て用意するとデータ量が膨大になってしまうが、この組合せ式であればそのような問題が改善される。
【0552】
ステップD316では、シナリオレイヤー番号0を準備する。
ステップD317では、現在の先読み情報及び遊技モード等に対応する背景シナリオテーブルのアドレスを準備する。
ステップD318では、直前のステップD316、D317で準備されたデータに基づいて、前述したシナリオデータ設定処理を実行する。
ステップD319では、シナリオレイヤー番号1を準備する。
ステップD320では、前述した図柄変動シナリオテーブル領域から、左図柄シナリオ1stテーブルアドレス(前述した左図柄用領域における1st(序盤)用領域に格納されたシナリオテーブルのアドレス)をロードして準備する。
ステップD321では、直前のステップD319、D320で準備されたデータに基づいて、前述したシナリオデータ設定処理を実行する。
【0553】
ステップD322では、シナリオレイヤー番号2を準備する。
ステップD323では、前述した図柄変動シナリオテーブル領域から、右図柄シナリオ1stテーブルアドレス(前述した右図柄用領域における1st(序盤)用領域に格納されたシナリオテーブルのアドレス)をロードして準備する。
ステップD324では、直前のステップD322、D323で準備されたデータに基づいて、前述したシナリオデータ設定処理を実行する。
ステップD325では、シナリオレイヤー番号3を準備する。
ステップD326では、前述した図柄変動シナリオテーブル領域から、中図柄シナリオ1stテーブルアドレス(前述した中図柄用領域における1st(序盤)用領域に格納されたシナリオテーブルのアドレス)をロードして準備する。
ステップD327では、直前のステップD325、D326で準備されたデータに基づいて、前述したシナリオデータ設定処理を実行する。
【0554】
ステップD328では、シナリオレイヤー番号7を準備する。
ステップD329では、第4図柄シナリオテーブル(第4図柄用のシナリオテーブル)のアドレスを準備する。
ステップD330では、直前のステップD328、D329で準備されたデータに基づいて、前述したシナリオデータ設定処理を実行する。
以上説明したルーチン(リーチなし変動設定処理)によれば、リーチなし変動の場合のシナリオ制御データの設定が必要なシナリオレイヤー(この場合、シナリオレイヤー0,1,2,3,7)について行われ、シナリオテーブルとしては例えば図184に示すような組み合わせが選択されたことになる。
【0555】
〔停止図柄設定処理〕
次に、上述のリーチなし変動設定処理におけるステップD314で実行される停止図柄設定処理の詳細について図118により説明する。なお本例では、演出用の特図が左右に並んで配置される3カ所の図柄(左図柄、中図柄、右図柄)からなるが、これら図柄としてそれぞれ9種類の図柄(図柄番号0乃至8)がある場合を例示する。
このルーチンが開始されると、まずステップD331で、前述した特図種別が特図2変動か判定し、特図2ならばステップD332を実行した後にステップD334に進み、特図2でない場合(即ち、特図1の場合)にはステップD333を実行した後にステップD334に進む。
ステップD332では、特図停止図柄領域の特図2第4図柄にはずれ図柄番号をセーブする。
ステップD333では、特図停止図柄領域の特図1第4図柄にはずれ図柄番号をセーブする。
【0556】
ステップD334に進むと、図柄生成フラグとしてはずれバラケ目が準備されているか判定し、準備されていればステップD335乃至D336を実行した後にステップD337に進み、準備されていなければステップD345に進む。なお、はずれバラケ目の図柄生成フラグは前述のステップD313で準備される。
【0557】
ステップD335は、9種類の図柄番号0乃至8からランダムに一つ選択した図柄番号を左図柄lxとして設定する処理である。
ステップD336は、8種類の図柄番号0乃至7からランダムに一つ選択した図柄番号を右図柄rxとして設定する処理である。
ステップD337に進むと、ステップD336で設定した右図柄rxがステップD335で設定した左図柄lx以上の値であるか判定し、右図柄rx≧左図柄lxであればステップD338で右図柄rxの図柄番号を1つ増やしてステップD339に進み、右図柄rx≧左図柄lxでなければ(即ち、右図柄rx<左図柄lxであれば)ステップD338を実行しないでステップD339に進む。
これらステップD335乃至D338の処理により、左図柄lxと右図柄rxがランダムに設定されるとともに、左図柄lxと右図柄rxは必ず異なる図柄番号に設定される。ステップD336で図柄番号7以下の範囲から選択するのは、ステップD338で必ず一つ増やすことができるようにするためである。
【0558】
ステップD339に進むと、左図柄lxと右図柄rxとが出現禁止図柄となり得る組合せか判定し、出現禁止図柄となり得る組合せならばステップD340に進み、出現禁止図柄となり得る組合せでなければステップD344に進む。出現禁止図柄とは、ここでは、はずれバラケ目として出現が禁止される図柄である。例えば「357」「375」「537」・・・のように3,5,7の組合せの図柄をチャンス目とした仕様の場合に、このチャンス目がはずれ変動時に出現しないように禁則制御を行う必要があるときには、このチャンス目が出現禁止図柄である。ステップD339乃至D343は、この禁則制御のための処理である。単にバラケ目でよい機種なら、この禁則制御は不要であり、右列の処理(ステップD344)だけで足りる。
具体的に説明すると、例えば3,5,7の組合せの図柄が出現禁止図柄であるとすると、ステップD339では、左図柄lxと右図柄rxの図柄番号が3,5,7のうちの異なる何れか二つである場合には、出現禁止図柄となり得るとしてステップD340に進む。
【0559】
ステップD340に進むと、「左図柄lx,中図柄cx,右図柄rx」の組合せが出現禁止図柄となるcx値をnocxという記憶領域に格納する。例えば、左図柄lxが3で、右図柄rxが5の場合、あとは中図柄cxが仮に7であれば、特図の図柄の組み合わせは「3,7,5」となって出現禁止図柄になるので、その中図柄cxの値である7をnocxにセットする。
ステップD340を経るとステップD341で、8種類の図柄番号0乃至7からランダムに一つ選択した図柄番号を中図柄cxとして設定する処理を実行し、その後ステップD342に進む。
【0560】
ステップD342に進むと、中図柄cx≧nocxであるか判定し、中図柄cx≧nocxであればステップD343で中図柄cxの値を1つ増やしてステップD354に進み、中図柄cx≧nocxでなければステップD343を実行しないでステップD354に進む。
これらステップD341乃至D343の処理によれば、中図柄cxの値は必ずnocxと異なる値になり、結局、「左図柄lx,中図柄cx,右図柄rx」の組合せは、必ず出現禁止図柄でないものとなる。
ステップD344に進むと、8種類の図柄番号0乃至7からランダムに一つ選択した図柄番号を中図柄cxとして設定する処理を実行し、その後ステップD354に進む。
【0561】
ステップD345に進むと、図柄生成フラグとしてリーチ−1はずれ目が設定されているか判定し、設定されていればステップD346を実行した後にステップD347に進み、設定されていなければステップD353に進む。なお、リーチ−1はずれ目の図柄生成フラグは前述のステップD304やD306でセットされる。
ステップD346では、10種類の値0乃至9からランダムに一つ選択した値をtmprndとして格納する処理を実行する。
ステップD347に進むと、tmprndの値が0か判定し、0ならばステップD348とD349を順次実行した後にステップD352に進み、0でないならばステップD350とD351を順次実行した後にステップD352に進む。
【0562】
ステップD348では、奇数である4種類の値1,3,5,7からランダムに一つ選択した値を左図柄lxの番号として格納する処理を実行する。なお、ステップD348の図中の記載は、プログラム言語を用いて記載しており、「rand」は乱数を発生させる関数を示し、「mod」は割算の余りを求める演算を示しており、「rand()mod4」は0,1,2,3のうちからランダムに一つ選択された値となる。ステップD348では、この「rand()mod4」の値を2倍して1加算しているため、結局、1,3,5,7のうちからランダムに一つ選択された値となる。
ステップD350では、偶数である5種類の値0,2,4,6,8からランダムに一つ選択した値を左図柄lxの番号として格納する処理を実行する。
ステップD349又はステップD351では、リーチの図柄とするために、右図柄rxの値を左図柄lxの値と同じにする(即ち、右図柄を左図柄と同じ図柄とする)。
【0563】
ここで、ステップD346乃至D348、及びステップD350の処理によれば、リーチ図柄の奇数、偶数の出現割合を変化させることができる。この場合、ステップD347からステップD348に進むのはtmprnd=0の場合だけであるため、奇数図柄の出現割合は1/10となり、これに対してステップD347からステップD350に進む割合(即ち、偶数図柄の出現割合)は9/10となる。このようにするのは、次の理由による。即ち、再抽選演出があるため、どうしても大当りする時のリーチ図柄が偶数になりやすい。そこで、奇数リーチの大当り信頼度を低下させないために、奇数リーチの出現率を低くしているのである。なお、奇数、偶数の出現率の割合は、もちろん1:9の割合でなくともよい。また本例では、ステップD348やD350のように計算で図柄を求める態様を例示したが、乱数とデータテーブルで図柄を選出してもよい。
【0564】
ステップD352に進むと、−1はずれとなるように、左図柄lxの値から1を減算した結果を中図柄cxの値として設定し、その後ステップD354へ進む。
ステップD353に進むと、その他の図柄生成フラグに対応する組合せの図柄(大当り図柄含む)を生成する処理を実行した後、ステップD354に進む。
ステップD354では、ここまでのステップで設定された左図柄lx、中図柄cx、右図柄rxの値を、停止図柄領域の左図柄・中図柄・右図柄にそれぞれ格納し、その後リターンする。
【0565】
なお、上記ステップD334乃至D352は、以上説明したように、はずれバラケ目の場合と、リーチ−1はずれ目の場合の処理である。実際には停止図柄の種類には、他にも沢山の種類があるが、ここでは煩雑を避けるために、それら他の種類の処理についてはステップD353でまとめて図示しており、その詳細については図示及び説明を省略する。
また、大当り図柄生成の場合は、例えば左図柄だけを決定し、中・右図柄にコピーするやり方などが考えられる。その他、「777」と限定される場合や、計算によらず停止図柄の組合せを複数テーブル上に定義し、乱数で何れかを選択する、というやり方も考えられる。
【0566】
また、前述のステップD332,D333では第4図柄のはずれ図柄しか設定していないが、当りの場合には、ステップD353で図柄生成フラグに対応する第4図柄の当り図柄を設定する内容となっている。また、図柄生成フラグにも「2R確変大当り図柄目」「16R確変大当り図柄目」・・・といったような各種の設定内容があり、例えば「2R確変大当り図柄目」のフラグの場合、左中右図柄(飾り図柄としての左図柄、中図柄、及び右図柄)が「357」「573」・・・と複数のパターンが作られるように、第4図柄にも図190のように組み合わせが複数あり、どの組み合わせを出現させるかは乱数によって決定される。第4図柄の色の組み合わせは、当りの区分と1対1に対応しており、たとえば「上青、下青」の組み合わせは確変でない大当り、「上青、下黄」は確変大当りといったように対応している。機種毎に異なるが、事前に遊技機の仕様において、第4図柄の色の組み合わせには意味が定義されている。本例は、はずれでは「上白、下白」の1パターンしかあり得ない構成であり、白という色自身が外れ時にしか使われない。図118のステップD332,D333等では図柄番号を設定しているだけであるため、例えば外れでは特図1、2ともに図柄番号=0を設定し、図柄番号=0は特図1、2ともに「上白、下白」の組み合わせと定義されている。当り図柄では例えば第4図柄番号は1〜36(例えば、確変当り時は1〜18から抽選、非確変当り時は19〜36から抽選する)までそれぞれあり、同一の番号でも色の組み合わせは特図1と2で異なることもあり得る。例えば、特図1での「上青、下青」は確変ではなくても、特図2では確変の組み合わせになるといったこともあり得る。そのため、図柄番号と色組み合わせのテーブルは特図1と2で別々となっている。このように、第4図柄の色組み合わせがたくさんあるのと、第4図柄の特図1・2で色組み合わせの意味(定義)を変えているのは、左中右図柄の形態で確変か否かが分からなくしているのと同様に、第4図柄の色の組み合わせでも判別を困難とするためである。
【0567】
〔予告演出設定処理1〕
次に、前述の変動演出設定処理におけるステップD280で実行される予告演出設定処理1の詳細について図119により説明する。この予告演出設定処理1としては、乱数抽選結果(前述した予告抽選処理の結果)に応じてステップアップ予告の設定を行う場合を例示しているが、当然機種毎に予告演出の内容は異なる。なお、ステップアップ予告とは、予告内容や予告の信頼度を変化させつつ大当り予告を段階的に行うものである。本願の図面及び明細書において、「SU」とは、このステップアップ予告のステップアップを意味する。
このルーチンが開始されると、まずステップD381乃至D390を順次実行した後にステップD391に進む。
【0568】
ステップD381では、演出振分け結果領域のSU予告回数領域(演出振分け結果領域(L12))から振分け結果をロードする。
ステップD382では、シナリオレイヤー番号4を準備する。
ステップD383では、ステップD381でロードしたSU予告回数に対応するSU予告シナリオテーブルのアドレスを準備する。
ステップD384では、直前のステップD382、D383で準備されたデータに基づいて、前述したシナリオデータ設定処理を実行する。
【0569】
ステップD385では、演出振分け結果領域のSU1カットイン領域から振分け結果をロードする。
ステップD386では、ステップD385でロードしたSU1カットイン番号に対応する武将データを取得し、モーションインデックス領域(モーションインデックスを保存する記憶領域)のSU1カットイン領域にセーブする。
ステップD387では、演出振分け結果領域のSU2カットイン領域から振分け結果をロードする。
ステップD388では、ステップD387でロードしたSU2カットイン番号に対応する武将データを取得し、モーションインデックス領域のSU2カットイン領域にセーブする。
【0570】
ステップD389では、演出振分け結果領域のSU3カットイン領域から振分け結果をロードする。
ステップD390では、ステップD389でロードしたSU3カットイン番号に対応する武将データを取得し、モーションインデックス領域のSU3カットイン領域にセーブする。
上記ステップD385乃至D390では、振り分けられた武将キャラ出現を行うためのモーションテーブルのデータを、一旦保存している。なお、ここで保存されたデータが使用されるとは限らず、その後、後述のカットインキャラ差替え判定処理1〜3(ステップD395乃至D397)における判定の結果によっては、例えば女性キャラのデータに差し替えが行われる。またここでは、SU数が満たない結果(例えばSU1が選ばれた)の場合、上位SU領域には一番信頼度の低いキャラクタのデータをセーブしておくことになるが、結果としては使われない制御となっている。
【0571】
ステップD391に進むと、ステップD381でロードしたSU予告回数が0か判定し、0でない場合にはステップD392に進み、0である場合にはリターンする。
ステップD392に進むと、ステップD381でロードしたSU予告回数が1か判定し、1でない場合にはステップD393に進み、1である場合にはステップD395に進む。
ステップD393に進むと、ステップD381でロードしたSU予告回数が2か判定し、2でない場合にはステップD394に進み、2である場合にはステップD396に進む。
ステップD394に進むと、ステップD381でロードしたSU予告回数が3か判定し、3でない場合にはリターンし、3である場合にはステップD397に進む。
ステップD395に進むと、カットインキャラ差替え判定処理1(後述する)を実行し、その後リターンする。
ステップD396に進むと、カットインキャラ差替え判定処理2(後述する)を実行し、その後リターンする。
ステップD397に進むと、カットインキャラ差替え判定処理3(後述する)を実行し、その後リターンする。
【0572】
〔カットインキャラ差替え判定処理1〕
次に、上述の予告演出設定処理1におけるステップD395で実行されるカットインキャラ差替え判定処理1の詳細について図120により説明する。なお、SU予告回数が1の場合に本ルーチンが実行されるが、SU予告回数が1の場合にはステップアップ予告で登場するキャラが一人目だけであるため、本ルーチンでは差替えが全部差替えしかない。
このルーチンが開始されると、まずステップD401で、演出振分け結果領域の差替え判定領域から振分け結果をロードする。
次にステップD402で、ステップD401でロードした振分け結果に基づいて差替えが全部差替えであるか判定し、全部差替えならばステップD403を実行後にリターンし、全部差替えでなければステップD403を実行しないでリターンする。
ステップD403では、カットインSU1用モーション制御テーブルのインデックスをステップD401でロードした振分け結果に基づいて差し替える。
【0573】
〔カットインキャラ差替え判定処理2〕
次に、上述の予告演出設定処理1におけるステップD396で実行されるカットインキャラ差替え判定処理2の詳細について図121により説明する。なお、SU予告回数が2の場合に本ルーチンが実行されるが、SU予告回数が2の場合にはステップアップ予告で登場するキャラが二人目までであるため、本ルーチンでは差替えが、一部差替え(一人目だけ差替え)、一部差替え(二人目だけ差替え)、及び全部差替え(一人目と二人目の両方差替え)の3パターンのみである。
このルーチンが開始されると、まずステップD405で、演出振分け結果領域の差替え判定領域から振分け結果をロードする。
次にステップD406で、ステップD405でロードした振分け結果に基づいて差替えが差替え無しであるか判定し、差替え無しならばリターンし、差替え無しでなければステップD407に進む。
【0574】
ステップD407に進むと、ステップD405でロードした振分け結果に基づいて差替えが一部差替えであるか判定し、一部差替えならばステップD408で演出振分け結果領域の差替え対象SU判定領域から振分け結果をロードしてステップD409に進み、一部差替えでなければステップD413に進む。
ステップD409に進むと、ステップD408でロードした振分け結果に基づいて差替え対象がSU1(一人目のキャラ)か判定し、SU1ならばステップD411でカットインSU1用モーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えた後にリターンし、SU1でなければステップD410に進む。
【0575】
ステップD410に進むと、ステップD408でロードした振分け結果に基づいて差替え対象がSU2(二人目のキャラ)か判定し、SU2ならばステップD412でカットインSU2用モーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えた後にリターンし、SU2でなければリターンする。
一方、ステップD413に進むと、ステップD405でロードした振分け結果に基づいて差替えが全部差替えであるか判定し、全部差替えならばステップD414、D412を順次実行した後にリターンし、全部差替えでなければステップD414、D412を実行しないでリターンする。
ステップD414では、カットインSU1用モーション制御テーブルのインデックスをステップD405でロードした振分け結果に基づいて差し替え、ステップD415では、カットインSU2用モーション制御テーブルのインデックスを同様に差し替える。
【0576】
〔カットインキャラ差替え判定処理3〕
次に、上述の予告演出設定処理1におけるステップD397で実行されるカットインキャラ差替え判定処理3の詳細について図122及び図123により説明する。なお、SU予告回数が3の場合に本ルーチンが実行されるが、SU予告回数が3の場合にはステップアップ予告で登場するキャラが三人目まであるため、後述する処理内容に示すような多様な差替えパターンがあり、本例では、全部差替えについても通常の全部差替えと特殊な全部差替え(後述するストーリー用、及びプレミアム用)とがある。
このルーチンが開始されると、まずステップD421で、演出振分け結果領域の差替え判定領域から振分け結果をロードする。
次にステップD422で、ステップD421でロードした振分け結果に基づいて差替えが差替え無しであるか判定し、差替え無しならばリターンし、差替え無しでなければステップD423に進む。
【0577】
ステップD423に進むと、ステップD421でロードした振分け結果に基づいて差替えが一部差替えであるか判定し、一部差替えならばステップD424で演出振分け結果領域の差替え対象SU判定領域から振分け結果をロードしてステップD425に進み、一部差替えでなければステップD430に進む。
ステップD425に進むと、ステップD424でロードした振分け結果に基づいて差替え対象がSU1(一人目のキャラ)か判定し、SU1ならばステップD433でカットインSU1用モーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えた後にリターンし、SU1でなければステップD426に進む。
【0578】
ステップD426に進むと、ステップD424でロードした振分け結果に基づいて差替え対象がSU2(二人目のキャラ)か判定し、SU2ならばステップD434でカットインSU2用モーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えた後にリターンし、SU2でなければステップD427に進む。
ステップD427に進むと、ステップD424でロードした振分け結果に基づいて差替え対象がSU3(三人目のキャラ)か判定し、SU3ならばステップD435でカットインSU3用モーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えた後にリターンし、SU3でなければステップD428に進む。
【0579】
ステップD428に進むと、ステップD424でロードした振分け結果に基づいて差替え対象がSU1とSU2(一人目と二人目のキャラ)か判定し、SU1とSU2ならばステップD436,D437でカットインSU1用とカットインSU2用のモーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えた後にリターンし、SU1とSU2でなければステップD429に進む。
ステップD429に進むと、ステップD424でロードした振分け結果に基づいて差替え対象がSU2とSU3(二人目と三人目のキャラ)か判定し、SU2とSU3ならばステップD438、D439でカットインSU2用とカットインSU3用のモーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えた後にリターンし、SU2とSU3でなければリターンする。
【0580】
ステップD430に進むと、ステップD421でロードした振分け結果に基づいて差替え対象が通常の全部差替えか判定し、通常の全部差替えならばステップD440乃至D442でカットインSU1用とカットインSU2用とカットインSU3用のモーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えた後にリターンし、通常の全部差替えでなければステップD431に進む。
ステップD431に進むと、ステップD421でロードした振分け結果に基づいて差替え対象がストーリー用か判定し、ストーリー用ならばステップD443乃至D445でカットインSU1用とカットインSU2用とカットインSU3用のモーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えた後にリターンし、ストーリー用でなければステップD432に進む。
【0581】
ステップD432に進むと、ステップD421でロードした振分け結果に基づいて差替え対象がプレミアム用か判定し、プレミアム用ならばステップD446乃至D448でカットインSU1用とカットインSU2用とカットインSU3用のモーション制御テーブルのインデックスを前記振分け結果に基づいて差し替えた後にリターンし、プレミアム用でなければリターンする。
【0582】
〔PB予告用シナリオデータ設定処理〕
次に、上述の変動演出設定処理におけるステップD288で実行されるPB予告用シナリオデータ設定処理の詳細について図124により説明する。
このルーチンが開始されると、まずステップD451で、演出振分け結果領域のセリフSU領域から振分け結果をロードする。
次にステップD452で、ステップD451でロードした振分け結果に基づいてセリフSUがSU2系(SU2系は出現キャラが一人)であるか判定し、SU2系ならばステップD453乃至D455を順次実行した後にステップD459に進み、SU2系でなければ(即ち、出現キャラが二人のSU3系であるならば)ステップD456乃至D458を順次実行した後にステップD459に進む。
【0583】
ステップD453では、演出振分け結果領域のセリフSU2パターン領域から振分け結果をロードする。
ステップD454では、セリフSU2シナリオアドレステーブル(セリフSU2シナリオテーブルのリストテーブル)を設定する。
ステップD455では、ステップD453でロードした振分け結果に基づいて、ステップD454で設定したテーブルから、振分け結果のセリフSU2パターンに対応するシナリオテーブルのアドレスを取得し、準備する。
【0584】
なお、このステップD455でアドレスを取得するセリフSU2パターンのシナリオテーブルは、例えば図192の上段に示すものである。この図192の上段のシナリオテーブルにおいて、1〜4行目(テーブル右側に図示したインデックス番号が0〜3)は共通部であり、5〜6行目(インデックス番号が4〜5)はボタンが押されなかった場合の動作部であり、7〜15行目(インデックス番号が6〜14)はボタンが押された場合の動作部である。そして、2行目のオペランドとして設定されているモーションインデックスNo.(70)に対応するモーションテーブルの具体例が、図192の下段に示すモーションテーブル(Mdat_0070)である。ここで、モーションテーブル(Mdat_0070)において追加1コードによって登録される白ボタンのキャラクタは、ボタンが押されていない状態で白く光っているキャラクタであり、同じく黒ボタンのキャラクタは、ボタンが押されている状態で消灯しているキャラクタを示している。また、このモーションテーブル(Mdat_0070)によれば、各キャラクタを一定時間毎に交互に表示することで、ボタンが出たりへこんだりしているアニメーション表示が実現される。なお、モーションテーブルの制御では、モーションが削除されない限り、テーブルが一番下までくると、頭に戻る(後述のモーション制御処理を参照)。
【0585】
ステップD456では、演出振分け結果領域のセリフSU3パターン領域から振分け結果をロードする。
ステップD457では、セリフSU3シナリオアドレステーブル(セリフSU3シナリオテーブルのリストテーブル)を設定する。
ステップD458では、ステップD456でロードした振分け結果に基づいて、ステップD457で設定したテーブルから、振分け結果のセリフSU3パターンに対応するシナリオテーブルのアドレスを取得し、準備する。
【0586】
そしてステップD459に進むと、シナリオレイヤー番号5を準備し、ステップD460に進む。
ステップD460に進むと、直前のステップD459と、直前のステップD455又はD458で準備されたデータに基づいて、前述したシナリオデータ設定処理を実行し、その後リターンする。
以上説明した本ルーチンによれば、PB(プッシュボタン9)の操作によって特別なキャラクタが登場したり、PBを押した後のキャラクタやキャラクタのセリフが変化したりするといったPB予告演出が可能となる。
【0587】
〔大当り系コマンド処理〕
次に、前述の受信コマンド解析処理におけるステップD107で実行される大当り系コマンド処理の詳細について図125により説明する。
このルーチンが開始されると、まずステップD151でMODEのデータ(前述のステップD91で分離された上位バイトのデータ、後述のステップD154、D157、D160でも同じ)がファンファーレ演出(大当りになった時の演出)を指令するものであるか判定し、ファンファーレ演出を指令するものであるならばステップD152、D153を順次実行した後にステップD163に進み、ファンファーレ演出を指令するものでない場合にはステップD154に進む。
ステップD152では、コマンドに応じたファンファーレ演出を行うためのファンファーレ演出設定処理(説明省略する)を実行する。
ステップD153では、P機状態としてファンファーレ中を設定する。
【0588】
ステップD154に進むと、MODEのデータがラウンド演出(大当りのラウンド中の演出)を指令するものであるか判定し、ラウンド演出を指令するものであるならばステップD155、D156を順次実行した後にステップD163に進み、ラウンド演出を指令するものでない場合にはステップD157に進む。
ステップD155では、コマンドに応じたラウンド演出を行うためのラウンド演出設定処理(説明省略する)を実行する。
ステップD156では、P機状態としてラウンド中を設定する。
【0589】
ステップD157に進むと、MODEのデータがインターバル演出(大当り中のラウンドとラウンドの間の演出)を指令するものであるか判定し、インターバル演出を指令するものであるならばステップD158、D159を順次実行した後にステップD163に進み、インターバル演出を指令するものでない場合にはステップD160に進む。
ステップD158では、コマンドに応じたインターバル演出を行うためのインターバル演出設定処理(説明省略する)を実行する。
ステップD159では、P機状態としてインターバル中を設定する。
【0590】
ステップD160に進むと、MODEのデータがエンディング演出(大当り終了時の演出)を指令するものであるか判定し、エンディング演出を指令するものであるならばステップD161、D162を順次実行した後にステップD163に進み、エンディング演出を指令するものでない場合にはリターンする。
ステップD161では、コマンドに応じたエンディング演出を行うためのエンディング演出設定処理(説明省略する)を実行する。
ステップD162では、P機状態としてエンディング中を設定する。
そしてステップD163に進むと、前述のステップD210と同様に、コマンド受信済みフラグをセットし、その後リターンする。
なお、以上は大当り系コマンド処理の一例であり、上記以外の処理(例えば、ファンファーレ、ラウンド、インターバル、及びエンディング以外の演出のための処理)もあり得る。
【0591】
〔先読み図柄系コマンド処理〕
次に、前述の受信コマンド解析処理におけるステップD109aで実行される先読み図柄系コマンド処理の詳細について図126により説明する。なお、先読み図柄系コマンドと先読み変動系コマンドは、始動入賞があったときに遊技制御装置から演出制御装置に送信されるが、その送信順は、先読みでない通常の図柄系コマンドと変動系コマンドと同様に、先読み図柄系コマンドが先で先読み変動系コマンドが後である(前述のステップS398、S403参照)。また、先読み図柄系コマンドと先読み変動系コマンドは、前述の遊技制御装置の説明における先読み図柄コマンドと先読み変動パターンコマンドのことである。また、これら先読み図柄系コマンドと先読み変動系コマンドは、総称して先読み系コマンド(又は先読みコマンド)と称している。
このルーチンが開始されると、まずステップF21で、前述のステップD250(特図1保留情報設定処理)で登録された最新保留情報が特図1保留か判定し、特図1保留ならばステップF22を実行後にステップF24に進み、特図1保留でなければステップF23を実行後にステップF24に進む。
【0592】
ステップF22では、今回受信した先読み図柄系コマンドを、特図1保留数に対応する特図1先読み図柄コマンド領域にセーブする。
ステップF23では、今回受信した先読み図柄系コマンドを、特図2保留数に対応する特図2先読み図柄コマンド領域にセーブする。
ステップF24に進むと、先読み変動コマンド受信待ちフラグをセットし、次いでステップF25でコマンド受信済みフラグをセットし、その後リターンする。ここで、先読み変動コマンド受信待ちフラグをセットするのは、先読み図柄系コマンドと先読み変動系コマンドが順次送信される組を成すコマンドであるため、後の処理(後述のステップF31)で先読み図柄系コマンドを先に受信していない場合は先読み変動系コマンドの処理を実行しないようにするためである。また、コマンド受信済みフラグをセットするのは、既述したステップD210と同様に、テストモード移行コマンドを初回コマンドである場合以外は無効にするためである。
【0593】
〔先読み変動系コマンド処理〕
次に、前述の受信コマンド解析処理におけるステップD109bで実行される先読み変動系コマンド処理の詳細について図127により説明する。
このルーチンが開始されると、まずステップF31で、先読み変動コマンド受信待ちフラグがセットされているか判定し、セットされているならばステップF32に進み、セットされていない場合にはリターンする。先読み変動コマンド受信待ちフラグがセットされていない場合にリターンするのは、事前に先読み図柄系コマンドを受信することなく、いきなり先読み変動系コマンドを受信した場合には、異常であるので先読み変動系コマンドを破棄するためである。
【0594】
ステップF32に進むと、ステップF32乃至F37を実行後にステップF38に進む。
ステップF32では、先読み変動コマンド受信待ちフラグを次の先読み図柄系コマンド受信時に備えてクリアする。
ステップF33では、既述したステップF25と同様に、コマンド受信済みフラグをセットする。
ステップF34では、前記最新保留情報が示す図柄(特図種別)の保留数に対応する先読み変動MODE変換テーブルを設定する。例えば、前記最新保留情報が特図1を示していれば、特図1の保留数に対応する先読み変動MODE変換テーブルを設定する。なお、先読み変動MODE変換テーブルは、演出モードによって異なる場合もあるので、その場合には、その時点の演出モードも考慮して設定する。
【0595】
ここで、先読み変動MODE変換テーブルは、先読み変動コマンドのうちのMODE(前半変動のコマンド)を演出制御装置内で変換するためのテーブルであって、特図1・基本モードの場合例えば図198に示すものであり、変換後のサブ内先読み変動コマンドのMODEの値がマトリックス状に配列され、受信した先読み変動コマンドのMODEの値によって行が決まり、保留数1〜4によって列が決まるテーブルである。この先読み変動MODE変換テーブルにおいて同じ値のものは、先読み抽選の際に同種の前半変動として扱われる。また、「00h」の所はその保留数の時には遊技制御装置から送られてこない変動コマンド(MODE)であること示している。例えば図198で、1行目の1列目(最上行で一番左の列)は「00h」になっているので、保留数1のときには、1行目に対応する「E03h」(3.0秒超短縮変動)という先読み変動コマンドは遊技制御装置から送られてくることがないものである。よって、その値「00h」を取得するようなら異常なので、先読みの抽選は行われない(後述のステップF38参照)。
【0596】
また、図198に示す先読み変動MODE変換テーブルにおいて塗りつぶし(斜線)を施していない白い部分は、保留数に影響を受けない前半変動であり、保留数が変わっても変換後のMODEの値は同じである。これは、白い部分に対応する前半変動の種類については、ある始動記憶が発生した始動入賞時(先読み時)の保留数と、その始動記憶の保留に基づいて実際に特図が変動を開始する時の保留数の関係がどのようになっていても(即ち、同じであっても変化していても)、変動開始時に送られてくる変動コマンドは先読み時の先読み変動コマンドと変わらないからである。
【0597】
しかし、図198に示す先読み変動MODE変換テーブルにおいて塗りつぶし(斜線)を施した部分は、保留数に応じて変動短縮が行われる前半変動なので、先読み時(始動入賞時)と変動開始時で保留数が異なってコマンドが異なる可能性のあるものである。そこで、このコマンド変換により保留数が変化しても演出制御装置内部での扱いにずれがでないように、保留数によって変換後のMODEのデータが異なっている。例えば、保留数が1のときに始動入賞があって先読み変動コマンドとして12秒通常変動のMODEの値「E3h」が送信されてきたとしても、その後保留数が3に変化したときに実際の変動を指令する変動コマンドとして遊技制御装置から送信されてくるMODEの値は「C1h」(8.0秒短縮変動)である(変動短縮が行われるため)。そのため、図198に示す先読み変動MODE変換テーブルにおいては、保留数が1でMODEの値が「E3h」である場合と、保留数が3でMODEの値が「E1h」(通常の変動コマンドの「C1h」に相当)である場合とで、変換後の値を同じ「F1h」としている。ちなみに、変動短縮は、遊技制御装置による例えば前述のステップS545やS555等の処理によって実現されており、当該保留が変動を開始するときの保留数によって前半変動の時間が変化するもので、保留が他になければ長めの前半変動になるし、新たに入賞し、保留数が多ければ保留の消化を早めるため短めの前半変動となる。本実施例では、図198に示すような先読み変動MODE変換テーブルによって、その変動時間値が遷移しても内部コマンド(変換後のコマンド)が同じに扱えるように変換する。このため、このコマンド変換により、保留数が変化しても演出制御装置内部での扱いにずれが発生せず、ずれがでないので、正しい先読み抽選を行うことができる効果がある。
【0598】
なお、前記ステップF34では、図198に示すような先読み変動MODE変換テーブルの全体ではなく、このテーブルのうち保留数に対応した特定の列の部分のみを設定している。
ステップF35では、上述した先読み変動MODE変換テーブル(ステップD34で設定された特定の列部分)に基づいて、受信した先読み変動コマンドのMODEの値に対応する変換後のサブ内先読み変動コマンドのMODEの値を取得する。例えば図198の場合、保留数が1で受信したMODEの値が「E3h」であると、変換後のMODEの値として、1列目における対応する4行目の「F1h」を取得する。
【0599】
ステップF36では、例えば図199に示す先読み変動ACT変換テーブルを設定する。この先読み変動ACT変換テーブルは、演出制御装置内の先読みの処理としては同じ扱いでよいACTの値をまとめるためだけの変換テーブルであり、受信した先読み変動コマンドのACTの値毎に、変換後のサブ内先読み変動コマンドのACTの値が配列されたテーブルであり、保留数に無関係にACTの値(即ち、リーチの種類)に応じて単純に変換するテーブルである。なお、ACT(後半変動)の変換が保留数によらないのは、リーチの種類は保留数に関係ないためである。例えば、ノーマルリーチでも、ノーマルリーチ−1停止はずれ、ノーマルリーチ+1停止はずれのように種類があるため、後半変動の値(ACT)をそのまま使うと数が多くなりチェックが困難になる。本実施例では、同一系統のリーチを同じ内部ACTに変換することで、コマンドデータの数を減らし、チェック処理の負担の軽減を実現している。ちなみに、前述の先読み変動MODE変換テーブルによるMODEの変換も、同じ扱いでよいものをまとめており、同様にコマンドデータの数を減らす作用効果がある。
【0600】
ステップF37では、上述した先読み変動ACT変換テーブル(ステップD36で設定されたもの)に基づいて、受信した先読み変動コマンドのACTの値に対応する変換後のサブ内先読み変動コマンドのACTの値を取得する。例えば図199の場合、受信したACTの値が「03h」であると、変換後のACTの値として、対応する3行目の「02h」を取得する。
ステップF38では、ステップF35、F37で取得した変換後のサブ内先読み変動コマンドのMODEとACTの値が、両者共に0(「00h」)でないか判定し、共に0でない場合にはステップF39に進み、何れか一方でも0である場合にはリターンする。なお、正常(有効)なコマンドであれば0以外の値に変換されるのであり、変換後のMODEとACTの値のうち何れか一方でも0である場合には、前述したように異常であるため先読み抽選処理(後述するステップF42)等を実行しないよう、ここでリターンする。
【0601】
ステップF39に進むと、変換後コマンドであるサブ内先読み変動コマンドの値(ステップF35、F37で取得した変換後のサブ内先読み変動コマンドのMODEとACTの値)を、最新保留情報が示す保留数と特図種別に対応する先読み変動コマンド領域にセーブし、その後ステップF40に進む。先読み変動コマンド領域は、サブ内先読み変動コマンドをセーブするためのRAM内の記憶領域であり、始動記憶の保留数に対応して設けられており、また特図種別(特図1又は特図2)に応じて保留数毎に異なる領域が設けられている。なお、変換後コマンドであるサブ内先読み変動コマンドがあれば、先読み演出の処理のためには、変換前の先読み変動コマンド(遊技制御装置から受信したもの)は特に必要ないため、この変換前のコマンドは本例ではセーブしない構成となっている。サブ内先読み変動コマンドは、既述したように、同種のコマンドをまとめて数を減らすとともに、始動入賞時と変動開始時とで保留数が変化しても、この変化を吸収できるように変換されたものとなっている。
【0602】
ステップF40に進むと、事前に受信している先読み図柄コマンドに対して先読み変動コマンド(この場合、変換後コマンドであるサブ内先読み変動コマンド)が整合しているか否かをチェックする先読みコマンド整合チェック処理(詳細後述する)を実行し、その後ステップF41に進む。
ステップF41に進むと、コマンド組み合わせは正常か判定して、異常ならばリターンし、正常ならばステップF42で先読み抽選処理(後述する)を実行後にステップF43に進む。なおステップF41では、ステップF40の処理の結果として無効コマンド情報の値が返されている場合には異常と判定し、有効コマンド情報の値が返されていると正常と判定する。
【0603】
ステップF43に進むと、ステップF42の結果として先読み予告演出(先読み演出)が発生したか(即ち、実行することになったか)を例えば実行中フラグ(後述するステップF102でセットされる)により判定して、発生なしであればリターンし、発生ありであれば次のステップF44で直ちに開始する演出かさらに判定し、直ちに開始する演出であるとステップF45乃至F47を順次実行後にリターンし、直ちに開始するものでない場合にはステップF45乃至F47を実行しないでリターンする。
ステップF45乃至F47は、発生した先読み演出を直ちに開始するための処理である。即ち、ステップF45では、選出された先読み演出に対応するシナリオレイヤー番号を準備し、ステップF46では、選出された先読み演出に対応するシナリオ用データテーブルのアドレスを準備し、ステップF47では、ステップF45及びF46で準備されたデータに基づいて前述したシナリオデータ設定処理を実行する。
【0604】
ここで、「直ちに開始する演出」とは、例えば保留変化予告がある。保留変化予告とは、保留表示(未実行な始動記憶の数である保留数を報知する表示)のアイコンが通常とは異なるものになる予告演出である。先読みに関するコマンドは本例では始動入賞時(始動口に入賞があった時)に送られてくるため(S380の特図保留情報判定処理を参照)、入賞時に即座にアイコンを変える必要があり「直ちに開始する演出」に相当する。また、「直ちに開始する演出」に相当しない先読み予告としては、変動中に行う予告などがあり、例えば連続でリーチ演出を行ったり、変動中に登場するキャラクタ等で予告したりするものが挙げられる。
【0605】
〔先読みコマンド整合チェック処理〕
次に、上述の先読み変動系コマンド処理におけるステップF40で実行される先読みコマンド整合チェック処理の詳細について図128により説明する。
このルーチンが開始されると、まずステップF51で、最新保留情報が示す保留数と特図種別に対応する先読み変動コマンド領域及び先読み図柄コマンド領域(ステップF22、F23で前述した特図1先読み図柄コマンド領域又は特図2先読み図柄コマンド領域)から、先読み変動コマンド(変換後のサブ内先読み変動コマンド)と先読み図柄コマンドの値をロードし、その後ステップF52に進む。
ステップF52に進むと、ステップF51でロードした先読み図柄コマンドの値が正常値か否か(例えば、とり得る値の範囲内か否か)を判定して、異常ならばステップF62に進み、正常ならばステップF53で当該先読み図柄コマンドの示す機種コードを設定してステップF54に進む。
【0606】
ステップF54に進むと、ステップF53で設定された機種コードが前述した機種コード領域(前記図柄系コマンド処理のステップD178参照)にセーブされている値と同じか判定して、異なっていれば異常であるのでリターンし、同じであればステップF55、F56を順次実行後にステップF57に進む。なお、ここでは機種コードのチェックのみを行い、前述した図柄系コマンド処理のように機種コードの更新は行わない(即ち、先読み図柄コマンドの示す機種コードによっては内部情報を書き換えない)。
ステップF55では、ステップF51でロードした先読み図柄コマンドの示す図柄種別情報を設定する。
ステップF56では、ステップF55で設定した図柄種別情報とステップF51でロードしたサブ内先読み変動コマンドのMODEに対応する先読みコマンド整合チェックテーブルを設定する。先読みコマンド整合チェックテーブルは、図173に示したACT整合チェックテーブルと同様のテーブルである。
【0607】
そしてステップF57に進むと、ステップF57、F61をループ端とするループ処理(繰り返し処理)を実行する。つまり、ステップF61で分岐することによって、ステップF58とステップF60を順次実行する動作を当該先読みコマンド整合チェックテーブル(直前のステップF56で設定されたもの)の最後まで繰り返す。
【0608】
ここで、ステップF58では、ステップF56で設定され後述のステップF60で更新される先読みコマンド整合チェックテーブルのアドレス(以下、整合チェックテーブルアドレスという)に対応するデータ(先読みコマンド整合チェックテーブル内の対応する行のデータ)がサブ内先読み変動コマンドのACTの値に一致するか判定し、一致すればこの繰り返しループ(ステップF57、F61をループ端とするループ処理)を抜けてステップF59に進み、一致しなければステップF60に進む。
ステップF60に進むと、整合チェックテーブルアドレスを次レコードに更新し、ステップF61に進む。
ステップF61に進むと、当該先読みコマンド整合チェックテーブルの最後のデータまでステップF58が繰り返し実行されたか判定し、最後のデータまでステップF58が繰り返された場合にはステップF62に進み、そうでない場合にはステップF57に戻って処理を繰り返す。
【0609】
このステップF57乃至F61の繰り返しループの処理によって、当該先読みコマンド整合チェックテーブル内の何れかのデータと、サブ内先読み変動コマンドのACTのデータとが一致すれば、ステップF59に進み、そうでない場合(一致するデータが当該先読みコマンド整合チェックテーブルに一つもない場合)には、ステップF62に進む。
そしてステップF62では、異常であるとして無効コマンド情報を返し、リターンする。またステップF59では、正常であるとして有効コマンド情報の値を返し、リターンする。
なお、前述のステップF41では、上記ステップF59、F62の何れかで返された情報によって、サブ内先読み変動コマンドと先読み図柄コマンドの整合性が判定される。
【0610】
〔先読み抽選処理〕
次に、上述の先読み変動系コマンド処理におけるステップF42で実行される先読み抽選処理の詳細について図129図130により説明する。
このルーチンが開始されると、まずステップF71で、先読み抽選(先読み演出の抽選)を実行可能か判定し、実行可能ならばステップF75に進み、実行不可ならばステップF72に進む。ここで、先読み抽選を実行不可の状態には、本例の場合二つの状態がある。第1は、既に先読み予告演出を実行中である状態は、先読み抽選実行不可である。第2は、演出モードが切り替わる所定変動回数(例えば8回転)前の状態(主基板からの演出モード切替コマンドを受信した時点から、その後新たな演出モードコマンドを受信するまでの期間)、即ち演出モードが切り替わる準備期間中は、先読み抽選実行不可である。これら二つの状態の何れかに該当するとステップF71の判定結果は「NO」になり、ステップF72に進む。
【0611】
ステップF72に進むと、ステップD250で説明した最新保留情報が特図2保留(特図2の保留であることを示す情報であり、ステップD194の特図2保留情報設定処理内で登録される)であるか判定し、特図2保留でない場合にはリターンし、特図2保留ならばステップF73に進む。
ステップF73では、特図2での割込み演出を行う先読み演出実行中か判定し、実行中ならばステップF74で特図2保留数に対応する先読み制御領域(後述する)に実行中の先読み演出情報をセーブした後にリターンし、実行中でなければステップF74を実行しないでリターンする。なお、上記先読み演出実行中か否かは、対応する先読み演出実行中フラグがセットされていれば実行中と判定することにより行う。先読み演出実行中フラグは、後述するステップF102でセットされ、後述するステップD729cでクリアされる。
以上のステップF72乃至F74によれば、先読み抽選実行不可の状態でも、最新保留情報が特図2保留で、割込み演出を行う先読み演出実行中であれば実行中の先読み演出情報がセーブされる。
【0612】
ステップF75に進むと、前記ステップF72と同様に、最新保留情報が特図2保留であるか判定し、特図2保留でない場合にはステップF77に進み、特図2保留ならばステップF76に進む。
ステップF76では、特図2での先読み演出可能な演出モード中か判定し、当該演出モード中であればステップF77に進み、当該演出モード中でなければリターンする。ここで、特図2での先読み演出可能な演出モードとは、本実施例の場合基本モードでなく、かつ大当り状態でない状態である。
これらステップF75、F76によれば、特図2保留であって、かつ基本モード又は大当り状態の場合には、先読み抽選(ステップF77以降)の処理が行われず、先読み演出は実行されない。但し、特図2保留の場合(即ち、先読み抽選しようとする本保留が特図2の保留である場合)において、先読み抽選をしない条件は、この態様に限定されない。例えば、通常モード(遊技制御装置が低確率・時短なしの時)中は、特図2を本保留とする先読み演出を行わない態様でもよい。また、基本モード中或いは大当り中でも特図2保留の先読み抽選を行う態様もあり得る。なお、本保留とは、今回受信した先読みコマンドに対応する保留(今回受信した先読みコマンドの起因となった始動入賞の始動入賞記憶)を意味する。
【0613】
なお、特図1保留の場合は、無条件にステップF75からF77以降に処理が進むフローチャートになっているが、特図1の場合は主基板(遊技制御装置)が先読みコマンドを送信する条件が制限されている(これに対して特図2は制限されていない)。即ち、特図1の場合は、通常モード中でしか主基板は先読みコマンドを送信しない(大当り中や高確率中は送信できない)ため、実質的には特図1保留の場合は、通常モード中でしかステップF77以降を含む本ルーチン(先読み抽選処理)自体が実行されず、通常モード中でしか先読み演出が実行されない。
【0614】
ステップF77では、これから先読み抽選(先読み予告演出の演出態様の抽選)を行うため、先読み制御領域を全て0クリアし、ステップF78に進む。先読み制御領域とは、後述するステップF99で実行する予告抽選処理のステップD397で抽選結果(振分け結果)をセーブするための先読み抽選結果領域(先読み演出についての演出振分結果領域)のことである。
ステップF78に進むと、トータル保留数(特図1と特図2の保留数の合計)が1か判定し、トータル保留数が1ならば次にステップF79で客待ちデモ中か判定し、客待ちデモ中ならばステップF83に進む。一方、ステップF78でトータル保留数が1でない場合と、ステップF79で客待ちデモ中でないと判定した場合には、ステップF80に進む。
【0615】
これらステップF78、F79によれば、例えば客待ちデモ中(トータル保留数は0)から始動入賞があってトータル保留数が1になった場合にはステップF83に進み、トータル保留数が1であっても例えば特図1または特図2が変動中で、トータル保留数が0の状態から始動入賞があってトータル保留数が1になった場合にはステップF80に進む。即ち、同じ保留数1でも、ゲームが進行していない時のものと、ゲーム進行中に保留数が1となったものがある。そして前者の場合は、後述する連撃図柄予告を実行しない(連続予告なので実行する意味がない)のでステップF83に進むが、後者の場合は、後述する連撃図柄予告を実行する可能性があるからステップF80に進む。なお、トータル保留数が1より多い場合には、連撃図柄予告はもちろん可能であるので、ステップF78でNOになってステップF80に進む構成となっている。また、本ルーチンは始動入賞時に主基板から送信される先読みコマンドに応じて実行されるため、ステップF78でトータル保留数が0であることはあり得ない。
【0616】
ステップF80に進むと、まずステップF80で特図変動中か判定し、次のステップF81ではリーチなし変動での中図柄高速変動終了前であるか判定し、次のステップF82ではノーマルリーチ変動での中停止図柄出現前(即ち、中図柄の停止図柄がスローダウンして停止しようとする前)であるか判定する。そして、ステップF80の判定結果がNOの場合、ステップF81の判定結果がYESの場合、及びステップF82の判定結果がYESの場合には、それぞれステップF84に進み。一方、ステップF80の判定結果がYESであるとステップF81に進み、次にステップF81の判定結果がNOであるとステップF82に進み、さらにステップF82の判定結果がNOの場合にはステップF83に進む。
【0617】
ここで、連撃図柄予告とは、例えば、1回目の変動終了時に連撃予告演出用の中停止図柄(停止した中図柄)が表示され、この中停止図柄を画面中のキャラクタ(武将)が刀で上から下に切る動画が再生された後に次の2回目の変動が開始し、次いで2回目の変動終了時に表示された連撃予告演出用の中停止図柄を今度はキャラクタが下から上に切る動画が再生された後に次の3回目の変動が開始し、…といったように複数の特図変動に渡って連続的に実行される先読み演出としての連続予告演出である。
なお、このような連撃図柄予告は、熱い先読み予告演出の一例として示したもので、先読み予告演出の態様はこれに限定されるものでないことは、いうまでもない。
【0618】
そして、上記ステップF80乃至F82では、この連撃図柄予告を出現させることが可能なタイミングかを判断している。停止する図柄が出てしまっていると連撃図柄予告に差し替えられないためである。そのため、連撃図柄予告が出現可能なタイミングとしては、第1に特図変動中でないとき、第2に特図変動中であってもリーチなし変動又はノーマルリーチ変動であって停止図柄が出現する前であるときがある。ステップF80ではこのうちの第1のタイミングであるかを判定しており、ステップF81及びF82では、このうちの第2のタイミングであるかを判定している。そして、この連撃図柄予告が発生可能なタイミングであればステップF84に進み、当該タイミングでなければステップF83に進む構成となっている。
【0619】
なお、変動途中の始動入賞の場合でも、「リーチなし変動で中図柄(左→右→中の順で止まる場合)の高速変動が終了する前」か「ノーマルリーチ変動で中停止図柄が出現する前(ノーマルリーチの終了直前のこと)」であれば連撃図柄予告を行うことができるので、その場合は上記ステップF81又はF82を経てステップF84に進む。但し、その時点で見た目がノーマルリーチでも、SP(スペシャル)リーチに発展するようなものはステップF83に進む構成であり、単純なノーマルリーチのみがステップF82のノーマルリーチ変動に該当する。
【0620】
そしてステップF83に進むと、連撃図柄予告を抽選不可であるため、その時点の演出モード及び保留数に対応する先読み変動条件チェックテーブル(連撃図柄予告不可)を設定する。
一方、ステップF84に進むと、連撃図柄予告を抽選可能であるため、その時点の演出モード及び保留数に対応する先読み変動条件チェックテーブル(連撃図柄予告可能)を設定する。
【0621】
ここで、先読み変動条件チェックテーブル(先読み条件チェックテーブルともいう)は、例えば図200に示すものである。図200の上段には先読み変動条件チェックテーブル(連撃図柄予告不可)の具体例(基本モード/特図1/保留数1/連撃図柄予告不可)が示してあり、同図下段には先読み変動条件チェックテーブル(連撃図柄予告可能)の具体例(基本モード/特図1/保留数2/連撃図柄予告可能)が記載してある。先読み変動条件チェックテーブルは、図に示すように、各保留毎に設定された変動コマンド比較データ(先読み変動コマンドのデータと比較するためのデータ)と、各図柄種別毎に設定された先読み抽選グループアドレステーブル(後述する)のアドレス(名称)とが、各行に1行ごとにグループを成して設定されている。そして、ある行の特定の図柄種別の列には、その行に設定されている比較データに一致する先読み変動コマンドとその特定の図柄種別とに適合する先読み抽選グループアドレステーブルのアドレスが設定されている。
【0622】
なお、上記先読み変動条件チェックテーブルは、1行毎にグループとなっている。また、変動コマンド比較データ(以下、単に比較データという場合がある)であるF200h等は、先読み変動コマンドのMODE+ACTを付けたものを表す。また、比較データの下位が「00h」のところはACTの値は問わない(ACTの値はなんでもよい)ことを示す。これに対し、例えば「F502h」は、MODEの値が「F5h」であり、ACTの値が「02h」であることを、ピンポイントで指している。後述するステップF85以降の処理によって、特図1なら特図1保留全ての先読み変動コマンドの組合せをチェックしていき、この先読み変動条件チェックテーブル中に該当する行があった場合に、入賞保留(最新の保留)の先読み図柄コマンドに対応する図柄の列の先読みグループアドレステーブルを取得し、予告抽選を行う。組合せが見つかるか、テーブルの最下段までチェックを繰り返し、該当する組合せがない場合は抽選を行わない。
【0623】
また、この先読み変動条件チェックテーブルの最終行における比較データの列(各保留に対応する列)には、データ終了コードとして「−1」が設定されている。
また、この先読み変動条件チェックテーブルには、その種類として、ステップF83で設定される連撃図柄予告不可のものと、ステップF84で設定される連撃図柄予告可能とものとがある。連撃図柄予告可能のものは、ステップF85以降の処理において連撃図柄予告が抽選される可能性があるが、連撃図柄予告不可のものは、ステップF85以降の処理の結果の如何にかかわらず、連撃図柄予告が抽選されることのないよう、テーブルのデータが設定されている。既述したように、ステップF83が実行されるのは、連撃図柄予告を出現させるべきでないと判定されたときだからである。
【0624】
次に、ステップF83又はF84を経ると、ステップF85に進み、最新保留情報が示す特図種別(特図1又は特図2)の全保留(保留上限値の4個分)のサブ内先読み変動コマンドをロードし、ステップF86に進む。このステップF85では、最新保留情報が例えば特図1であれば特図1の全保留のコマンドを読み出す。なお、保留のない保留数に対するコマンドをロードすると「0」が取り出されるが、このデータは使われることはない。
ステップF86では、ループ回数を初期値である「1」(保留1に相当)に設定し、次いでステップF87に進む。ループ回数とは、後述するステップF94で+1更新されるため、後述するステップF95を経てステップF87に戻って処理が繰り返す回数に相当する。例えば保留数が2であるときは最大全ての保留(1個目の保留1と2個目の保留2)について後述のステップF87からF90までの処理を繰り返し、結局最大2回同じ処理を繰り返すが、そのときの繰り返し数がこのループ回数である。このループ回数の値は、1ループ目は保留1の先読み変動コマンド、2ループ目は保留2の先読み変動コマンドといったように、チェックする保留の順番と対応する。
なおここで、「保留1」、「保留2」といった表記は、特図の保留(特図の変動表示ゲームが未実行の始動入賞記憶)が通常最大4個まで記憶保持されるが、これらの複数の始動入賞記憶を区別して表すための名称であり、始動入賞の順番は本ルーチンでは特に問わない。
【0625】
ステップF87では、ステップF83又はF84で設定された先読み変動条件チェックテーブル(以下では、当該先読み変動条件チェックテーブルという)におけるチェックテーブルアドレスに対応する行と列の位置に設定されている変動コマンド比較データを取得し、ステップF88に進む。例えば、ステップF84で図200の下段に示す先読み変動条件チェックテーブルが設定された後、最初にステップF87が実行されるときには、ステップF84でチェックテーブルアドレスとして当該先読み変動条件チェックテーブルの先頭行かつ先頭列が設定されているので、1行目で1列目(保留1の列)の比較データである「F200h」がステップF87で取得される。なお、チェックテーブルアドレスは、当該先読み変動条件チェックテーブルにおける位置(何行目で何列目か)を特定する。このチェックテーブルアドレスが指定する列は、後述するステップF88及びF89での判定対象の保留(以下、対象保留という)の列となり、この対象保留はループ回数に対応する(即ち、ループ回数が1ならば対象保留は保留1、ループ回数が2ならば対象保留は保留2、…というように対応する)。このチェックテーブルアドレスが特定する先読み変動条件チェックテーブルの行を、以下では指定行という。
【0626】
ステップF88に進むと、ステップF85でロードした対象保留のサブ内先読み変動コマンドのMODEの値と、ステップF87で取得した比較データのMODEの値とが一致するか判定し、一致すればステップF89に進み、一致しなければステップF91に進む。
ステップF89では、ステップF87で取得した比較データのACTの値が0か否か(即ち「00h」か否か)判定し、0ならばACTの値は問わないので後述のステップF90のACTのチェックを実行しないでステップF93に進み、0でないならばACTの値もチェックするためにステップF90に進む。
ステップF90では、ステップF85でロードした対象保留のサブ内先読み変動コマンドのACTの値と、ステップF87で取得した比較データのACTの値とが一致するか判定し、一致すればステップF93に進み、一致しなければステップF91に進む。
なお、ステップF88又はF90の判定結果がNO(不一致)のときにステップF91に進むのは、何れかの保留のサブ内先読み変動コマンドが当該先読み変動条件チェックテーブルの対象行のデータと不一致で、その指定行には適合しないことが判断されたので、指定行を次の行に変えてチェックを行うか、最終行なら適合する行が一つもないということなので処理を終了する(リターンする)ためである。
【0627】
そのためステップF91に進むと、チェックテーブルアドレスを次行(当該先読み変動条件チェックテーブルの次の行、図200では一行分だけ下の行)のアドレスに更新し、次いでステップF92で更新後のチェックテーブルアドレスが指定する当該先読み変動条件チェックテーブルの行にデータ終了コード「−1」が設定されているか判定し、設定されていればリターンし、設定されていない場合にはステップF86に戻ってそこから処理を繰り返す。
【0628】
一方、ステップF93に進むと、現在の保留数(例えば特図1の場合にはステップD252で設定された最新の特図1保留数)がその時点のループ回数と一致するか判定し、不一致ならばステップF96に進み、一致ならばステップF94に進む。
そしてステップF94に進むと、ループ回数を1だけ増やす更新を実行し、次いでステップF95でチェックテーブルアドレスを次の列(当該先読み変動条件チェックテーブルの次の列、図200では一列分だけ右の列)のアドレスに更新し、その後ステップF87に戻ってそこから処理を繰り返す。なおステップF95が実行されると、対象保留が、例えば保留1から保留2へ、或いは保留2から保留3へ、というように次の保留に変更される。
【0629】
ステップF89又はF90を経てステップF93に進むのは、指定行の対象保留の列の比較データと対象保留のサブ内先読み変動コマンドの値とが一致(但し、比較データのACTの値が0のときはサブ内先読み変動コマンドのACTの値はなんでもよい)した場合であるので、同じチェックの処理(ステップF87乃至F90)をさらに次の保留について繰り返し実行する必要があるか判断するために、ステップF93でループ回数がその最大値である現在の保留数になっているか判定している。そして、ステップF93でループ回数が現在の保留数になっていれば、全ての保留(図200の下段に示すような保留数2の場合には保留1と保留2)についてチェックが終了し、チェック結果は全ての保留のサブ内先読み変動コマンドに適合する行(以下、適合行という)が存在したということになるので、先読み予告演出の抽選を行うためにステップF96に進む構成となっている。一方、ステップF93でループ回数が現在の保留数になっていない場合には、全ての保留についてチェックが終了していないので、ステップF94及びF95の更新を行ってステップF87に戻ってそこから処理を繰り返す。そのため、始動入賞記憶の保留の上限値が4であるとすると、このようにステップF87に戻る回数(即ち、ループ回数)の最大値は4となる。但し、変形例としては、特図1と特図2をまとめて最大8個分のループ回数となるような態様でもよい。
【0630】
このように、以上説明したステップF85乃至F95の処理によれば、ステップF83又はF84の何れかで設定された先読み変動条件チェックテーブル(当該先読み変動条件チェックテーブル)の中に、各保留に対応して記憶されている全てのサブ内先読み変動コマンドに対して全ての保留毎にそれぞれ比較データが一致する行(但し、比較データのACTの値が0のときはコマンドのACTの値は不問)が存在するかチェックされ、一致する行があればステップF96に進み、後述する先読みの予告抽選が行われる。そして、このようにステップF96に進む場合は、全ての保留の変動が本保留の先読みを行えるものである確認が取れた場合であり、このような処理によってその確認が取れるように先読み変動条件チェックテーブルは各行のデータが設定されており、さらに演出モード、保留数、及び連撃図柄予告の可否等の条件毎に異なるものが予め登録されている。
【0631】
次にステップF96に進むと、当該先読み変動条件チェックテーブルの適合行から、機種コード及び最新保留(即ち、本保留)の先読み図柄コマンドに対応する列にあるデータ(先読み抽選グループアドレステーブルのアドレス)を取得し、ステップF97に進む。 ここで、先読み抽選グループアドレステーブルとは、例えば図201の上段に例示するものであり、先読み抽選グループテーブル(後述する)のアドレスがサブ内先読み変動コマンドのACTの値(変換後の値)に対応させて配列されたものである。そして、例えば当該先読み変動条件チェックテーブルが図200の下段に示すものであり、保留1のサブ内先読み変動コマンドMODEの値が「F2」で、保留2の同コマンドMODEの値が「F5」で、本保留の先読み図柄コマンド等に対応する列が「はずれ図柄」の列である場合には、図200の下段のテーブルの2行目が適合行になり、上記ステップF96では図200の下段に斜線で示す部分のデータ「HazT12KR_1」が先読み抽選グループアドレステーブルのアドレスとして上記ステップF96で取得されることになる。なお、図200の下段のテーブルでは、同じ「はずれ図柄」の列の1行目から6行目まで同じデータであるので、同じデータの箇所は全部斜線(塗りつぶし)が施してある。また、この斜線部分のアドレスデータ「HazT12KR_1」で特定される先読み抽選グループアドレステーブルが、図201の上段に示すテーブルである。
【0632】
ステップF97では、ステップF96でアドレスが取得された先読み抽選グループアドレステーブルにおいて、本保留のサブ内先読み変動コマンドのACTの値(変換後の値)に対応する行にある先読み抽選グループテーブルのアドレスを取得し、ステップF98に進む。例えば、取得された先読み抽選グループアドレステーブルが図201の上段に示すものであり、上記ACTの値(変換後の値)が「04h」である場合には、図201の上段で斜線を施した4行目にある先読み抽選グループテーブルのアドレス「V1_Haz_SP2_KR」を、上記ステップF98で取得する。
なお、先読み抽選グループテーブル「V1_Haz_SP2_KR」は、例えば図201の中段に示すテーブルである。このように、先読み抽選グループテーブルとは、前述の図180に示したテーブルと同様に、一つの先読み予告抽選テーブルのアドレスと、当該アドレスに対応する一つの先読み抽選結果領域のアドレスとが同一行に対応させて複数配置されたテーブルである。ここで、先読み予告抽選テーブルは、前述の図182に示した予告振分テーブルと同様のテーブル(予告振分テーブルの一種)であり、例えば図201の下段に示すものである。図201の下段に示す先読み予告抽選テーブルは、図201の中段に示す先読み抽選グループテーブルにおける1行目と2行目にそれぞれアドレスが設定されたテーブル「V1」、「V2」である。
【0633】
次にステップF98では、ステップF97で取得したアドレスのデータが未定義か判定し、未定義でない場合は先読み予告の予告抽選処理を行うべくステップF99に進み、未定義ならば先読み予告の予告抽選処理を行わないのでステップF99を実行しないでステップF100に進む。
ステップF99に進むと、ステップF97で取得されたアドレスの先読み抽選グループテーブルに基づいて予告抽選処理を行い、その後ステップF100に進む。なお、このステップF99で行う予告抽選処理としては、前述のステップD273、D277と同じルーチン(図115に示す)が実行される。なお、前述のステップD273等は変動開始時(先読みでない通常の変動コマンドの受信時)に行われるのに対して、このステップF99は始動入賞時(始動入賞に伴う先読みコマンドの受信時)に行われる。
【0634】
ステップF100に進むと、先読み予告(或いは先読み演出、先読み予告演出などと呼ばれる)を実行するのか判定し、実行しない場合はリターンし、実行する場合にはステップF101、F102を順次実行後にリターンする。なお、ステップF99で「予告なし」が抽選された場合と、ステップF97で取得したデータが未定義でステップF98からF100に進んだ場合には、ステップF100で先読み予告を実行しないと判定し、それ以外の場合には先読み予告を実行すると判定する。
ステップF101では、最新保留情報に基づいて先読み実行回数(先読み演出回数)を設定する。例えば、保留数が4個あれば4回、保留数が3個あれば3回、といったように設定する。この先読み演出回数は、前述したステップD117で更新され、後述するステップD729bで使われる。
ステップF102では、決定された先読み演出の実行中フラグ(先読み演出実行中フラグ)をセットする。なお、この先読み演出実行中フラグは、先読み演出が実行されるか否かの情報のみでなく、先読み演出の種類が判別できる情報を含んでいてもよい。また、この先読み演出実行中フラグは、後述するステップD729cでクリアされる。
【0635】
〔テストモード系コマンド処理〕
次に、前述の受信コマンド解析処理におけるステップD109cで実行されるテストモード系コマンド処理の詳細について図131により説明する。本ルーチンは既述したように、テストモード系コマンドを受信したときに実行される。なおここでは、図202に示すテストモードの状態遷移図を参照しつつ説明する。
【0636】
なおテストモードは、演出制御装置における動作モードであり、既述したように、工場出荷時および開発時に、演出制御装置が制御するデバイスが正常に動作するかを確認するための各種テスト動作を実行するためのモードである。テストモード用制御装置を商用の遊技制御装置に代えて演出制御装置に接続し、通常遊技中には使用されないテストモード専用のテストモード系コマンドをテストモード用制御装置から演出制御装置に送信することによって、当該モードに突入し、各種テスト動作を実行することになる。このテストモードは、出荷する前に動作確認をするためのものであるので実機そのものの制御ROM(プログラム)で実施しなくては意味がなく、よって隠しモード的に組み込まれているモードとなっている。市場に流通する遊技機の遊技制御装置のプログラム内にはテストモード用コマンドは一切組み込まれていないので、一般遊技者がこのモードの動作を見ることはない。また、一旦テストモードに突入すると、電源を入れ直さないと通常遊技のモードに復帰できない作りとしている。
【0637】
このテストモード系コマンド処理のルーチンが開始されると、まずステップF111で、ステップD91で分離されたMODEの値がテストモード移行を指令するデータ(テストモード移行コマンドのデータ)であるか判定し、テストモード移行を指令するデータであればステップF112に進み、テストモード移行を指令するデータでない場合にはステップF115に進む。
【0638】
ステップF112に進むと、今回受信したコマンドが電源投入後最初のコマンドであるか判定し、最初のコマンドでなければテストモードに移行しないのでリターンし、最初のコマンドであればテストモードに移行すべくステップF113、F114を順次実行後にリターンする。なおステップF112では、前述したコマンド受信フラグがセットされていれば最初のコマンドでないと判定し、セットされていなければ最初のコマンドと判定する。
ステップF113では、コマンド受信済みフラグをセットし、次いでステップF114では、テストモードへの移行を示すテストモード移行フラグをセットする。ここでステップF113は、テストモード移行を指令するコマンド(テストモード移行コマンド)を再度受信したときに、同じ処理を繰り返さないための処理である。また、テストモード移行フラグは、メインルーチンの中のテストモード処理(ステップD23a)において、テストモードへ移行させる処理を実行させるためのフラグである(後述のステップF126参照)。
以上のステップF111乃至F114の処理によれば、電源投入後最初のコマンドとしてテストモード移行コマンドを受信すると、図202において矢印T1で示す状態遷移(即ち、電源投入直後からテストモードへの移行)が実現される。
【0639】
一方、ステップF115に進むと、テストモード実行中であるか否か(即ち、テストモードに移行しているか否か)を後述するテストモード実行中フラグにより判定し、実行中(テストモード実行中フラグがセットされている)であればステップF116で今回受信したコマンドが正常なコマンドか否かさらに判定し、正常なコマンドであればステップF117でテストモード用コマンドバッファに今回受信したコマンドをセーブし、その後リターンする。
そして、ステップF115の判定結果がNO(テストモード実行中でない)である場合と、ステップF116の判定結果がNO(正常なコマンドでない)である場合には、ステップF117を実行しないでリターンする。
上記ステップF115乃至F117によれば、テストモード中に受信された有効なテストモード系コマンドが所定バッファにセーブされる。
【0640】
なお、ステップF116の判定では、今回受信したテストモード系コマンドのMODEの値とACTの値との組み合わせが正常か否か判定しており、正常であればステップE117で専用のコマンドバッファに当該コマンドを保存し、後のテストモード処理で読み出し可能としている。
以上説明したテストモード系コマンド処理によれば、テストモード移行コマンドは演出制御装置にとって、電源投入後の一番最初に受信したものでないと有効とならない。また、その他のテストモード系コマンドは、有効となったテストモード移行コマンドによりテストモードに移行してテストモード実行中となっていなければ全て破棄される。よって市場において、遊技中にノイズ等によりコマンドがテストモード系コマンドに変化してしまったとしてもテストモードを実行することはない。
【0641】
〔テストモード処理〕
次に、前述のメイン処理におけるステップD23aで実行されるテストモード処理の詳細について図132により説明する。
このルーチンが開始されると、まずステップF121で、テストモード実行中であるか否かをテストモード実行中フラグにより判定し、実行中(テストモード実行中フラグがセットされている)であればステップF122に進み、実行中でなければステップF126に進む。テストモード実行中フラグは、テストモード実行中を判定可能とするために、後述のステップF132でセットされるフラグである。
【0642】
テストモード実行中ではなくてステップF126に進むと、テストモード移行フラグがセットされているか判定し、セットされているとテストモードに移行するためにステップF127乃至F132を順次実行後にリターンし、セットされていない場合にはステップF127乃至F132を実行しないでリターンする。
ここで、ステップF127では初期化すべき領域にテストモード開始時の初期値をセーブし、ステップF128ではテストモード開始時画面の描画設定を実行し、ステップF129では無音を出力要求し、ステップF130では全装飾LEDの消灯を要求し、ステップF131では全可動体のオフを要求し、ステップF132ではテストモード実行中フラグをセットする。
【0643】
上記ステップF127乃至F131によれば、テストモード移行時(テストモード実行開始時)の初期化が行われる。即ち、図202において矢印T2で示す状態遷移(即ち、テストモード移行直後の初期化)が実現される。
なお、テストモードにおける初期化とは、以下の動作である。
・表示を消す。(黒画面にする)
・全装飾をオフする。
・全スピーカをオフする。
・全可動体を初期位置に戻し停止させる。(初めから初期位置にあれば動かさない)
・演出ボタンを初期設定し、デフォルト状態にする。
【0644】
一方、テストモード実行中でステップF122に進むと、ROM検査グループ処理実行中か否かを後述のROM検査グループ処理中フラグにより判定し、実行中(ROM検査グループ処理中フラグがセットされている)ならばステップF124でテストモードROM検査グループ処理(後述する)を実行した後にステップF125に進み、当該処理を実行中でなければステップF123でテストモード通常状態処理(後述する)を実行後にステップF125に進む。
ステップF125に進むと、テストモード演出ボタン処理(詳細省略)を実行後にリターンする。
【0645】
ここで、ROM検査グループ処理実行中という状態(図202におけるROM検査状態)は、ROMのピン状態チェックやチェックサム算出など、1つのコマンド指示に対応する動作のみを行う占有状態となるモードである。当該モード中は、ROM検査終了のコマンドを受信するまで、当該モードのコマンド以外を受け付けない。
また、テストモード通常状態とは、テストモード中における待機状態(図202における初期化状態)と、各カテゴリの検査動作を単独制御できる状態(図202における重複検査状態)とを含むモードである。単独制御においては、異なるカテゴリのもの同士(例えば、遊技盤装飾デバイスと可動体)では重複で動作可能である。
また、上記ROM検査状態は、演出制御装置を構成するサブ基板上の制御ROM或いは音声ROMなどのROMのピン状態の検査やチェックサム算出などを実行するモードである。これに対し、テストモード通常状態における重複検査状態は、遊技機内において演出制御装置から見て外部に存在するデバイス(表示装置やランプ類など)の状態を検査するモードである。
なお、テストモード実行中においては、上記二つのモード、即ちROM検査グループ処理実行中(ROM検査状態)とテストモード通常状態のうちの何れか一方のモードになっている。ROM検査グループ処理中フラグがセットされていれば、ROM検査グループ処理実行中(ROM検査状態)であり、セットされていなければテストモード通常状態である。
【0646】
また、ステップF125のテストモード演出ボタン処理は、テストモード中において、上記コマンドによる動作とは無関係に枠の演出ボタンの動作を確認できるようにする処理である。例えば演出ボタンを押すと、演出ボタンに搭載されているLEDを点滅させることでプッシュ機能が正常であるという確認ができるようにする処理である。この処理では、フルカラーLEDを使用しているなら、R、G、Bの全ての色が確認できるようにするのが好ましい。タッチセンサの場合であれば、タッチした部分のLEDが点灯するなど、デバイスの1つ1つが確認できるようにすると検査信頼性が向上し検査が容易かつ効率的になる。
【0647】
〔テストモード通常状態処理〕
次に、上述のテストモード処理におけるステップF123で実行されるテストモード通常状態処理の詳細について図133により説明する。
このルーチンが開始されると、まずステップF141でテストモード系コマンドであるテストモード初期化コマンドを受信したか判定し、受信ありならばステップF142乃至F146を順次実行後にステップF147に進み、受信なしである場合には、ステップF142乃至F146を実行しないでステップF147に進む。
ここで、ステップF142では初期化すべき領域に初期化コマンド時の初期値をセーブし、ステップF143ではテストモード開始時画面の描画設定を実行し、ステップF144では無音を出力要求し、ステップF145では全装飾LEDの消灯を要求し、ステップF146では全可動体のオフを要求する。
なお、テストモード初期化コマンドは、テストモード中に、表示器・音声・装飾・可動体全てを一括で初期状態にするためのコマンドであり、当該初期状態にするための処理が上記ステップF142乃至F146である。つまり、上記ステップF141乃至F146の処理によれば、テストモード通常状態においてテストモード初期化コマンドを有効に受信すると、図202において矢印T3で示す状態遷移(即ち、テストモード通常状態での初期化コマンドによる初期化)が実現される。
【0648】
ステップF147に進むと、テストモード系コマンドであるROM検査移行コマンドを受信したか判定し、受信ありならばステップF148乃至F154を順次実行後にステップF155に進み、受信なしである場合には、ステップF148乃至F154を実行しないでステップF155に進む。
ここで、ステップF148ではROM検査グループ処理中フラグをセットし、ステップF149では初期化すべき領域にROM検査グループ処理開始時の初期値をセーブし、ステップF150ではテストモード開始時画面の描画設定を実行し、ステップF151では無音を出力要求し、ステップF152では全装飾LEDの消灯を要求し、ステップF153では全可動体のオフを要求し、ステップF154では演出ボタン制御可フラグをセットする。
【0649】
なお、ROM検査移行コマンドは、ROM検査グループ処理実行中の状態(ROM検査状態)に移行するためのコマンドであり、当該状態に移行するための処理がステップF148乃至F154である。
つまり、上記ステップF147乃至F154の処理によれば、テストモード通常状態の待機状態においてROM検査移行コマンドを有効に受信すると、図202において矢印T4で示す状態遷移(即ち、初期化を伴うROM検査状態への移行)が実現される。
【0650】
そして、ステップF155に進むと、ステップF155乃至F160の各処理を順次実行後にリターンする。
ここで、ステップF155乃至F159の各処理(表示器検査グループ処理、音声検査グループ処理、盤装飾検査グループ処理、枠装飾検査グループ処理、可動体検査グループ処理)は、各カテゴリ毎のコマンドに対応する動作を行うための処理であり、遊技機の組立工場での検査用の処理である。残りのステップF160の処理(基板製造メーカ用検査グループ処理)は、演出制御装置を構成する演出制御基板(サブ基板)を製造するメーカが独自に検査を行うためのコマンド動作のための処理である。
なお、ステップF155乃至F159の各処理の詳細は省略するが、これら各処理中には、上記ステップF141やF147のように対応する各検査コマンドの受信の有無を判定するステップがあり、対応する検査コマンドに応じて処理が実質的に実行される。
【0651】
また、上記ステップF155乃至F158の処理により実現される各検査の具体例について説明すると、次のようになる。
・表示器検査:カラーバー画像やグレースケール画像を表示したり、通常遊技とは異なる変動(出荷前検査用に普通よりも短時間の図柄変動)を表示させたりする。
・音声検査:スピーカ単体の検査を行うための音声を出力させる(例えば左スピーカだけに「左です」と音声出力させる)。その他、エラー報知音を出力させたりする。これは、例えば磁気センサが故障していないかを出荷前に検査するときに、センサがきちんと反応したことを検査担当者に教えるためである。センサが反応したかどうかは何か反応がないとわからないからである。この際、検査用に演出制御装置に接続した制御装置がセンサのオンオフを確認し、それに応じてコマンドを送信したりする。
・装飾検査:遊技盤上の全ランプ(LED)を一斉に点灯・点滅させたり、特定の部位のランプを点灯・点滅させたりする。枠側のランプ類も同様である。
・可動体検査:可動体を規定の動作で動かす。(単体でもよいし、複数同時でもよい。機種の仕様による。)
【0652】
なお、基本的に上記各検査時の動作内容は、短時間で確実に検査できるように、通常遊技中とは異なる専用の動作が主となる。また、上記は例であり、他にも検査内容に応じた動作がある。これら検査においても、演出制御装置に接続した検査専用の制御装置等からのコマンドに基づいて動作する。
また、上記ステップF155乃至F159の処理によれば、テストモード通常状態の待機状態において検査コマンドを有効に受信すると、図202において矢印T5で示す状態遷移(即ち、重複検査状態への移行、各種検査実行)が実現される。
【0653】
〔テストモードROM検査グループ処理〕
次に、上述のテストモード処理におけるステップF124で実行されるテストモードROM検査グループ処理の詳細について図134により説明する。
このルーチンが開始されると、まずステップF171で、テストモード系コマンドであるROM検査グループのコマンドを受信したか判定し、受信ありならばステップF172に進み、受信なしである場合にはステップF188に進む。ROM検査グループのコマンドとは、ROM検査グループ処理実行中(ROM検査状態)というモードにおいて、テストモード用制御装置から演出制御装置に送信されるコマンドである。
ステップF172に進むと、ROM検査グループの処理(後述するステップF188乃至F193の何れかの処理)を実行中でないか否かを所定のフラグの状態に基づいて判定し、実行中でない場合には受信したコマンドに対応した処理を開始すべくステップF173に進み、実行中である場合には受信したコマンドを破棄(無視)してステップF188に進む。ここで、所定のフラグとは、例えば、後述するステップF188乃至F193の各処理をそれぞれ開始するための後述するステップF181乃至F186の処理中においてセットされ、例えば後述するステップF187においてクリアされるフラグである。この所定のフラグがセットされている状態で(即ち、あるROM検査グループのコマンドを実行中に)、他のROM検査グループのコマンドを受信しても、上記ステップF172の判定結果がNOになって受信したコマンドは破棄される。これは、例えばあるROMのチェックサムを計算中に他のROMのチェックサムを計算することはできないので、コマンドを一つ一つ確実に実行する(同時には一つのコマンドしか実行しない)ためである。
【0654】
ステップF173に進むと、受信したROM検査グループのコマンドの上位バイトをMODEとし、下位バイトをACTとして分離し、その後ステップF174に進む。
ステップF174では、ACTの値(ステップF173で分離したACTの値、以下同様)がキャラROMピン検査処理を指令するデータであるか判定し、当該データであればステップF181でキャラROMピン検査開始処理を実行した後にステップF188に進み、当該データでなければステップF175に進む。
ステップF175では、ACTの値がキャラROMチェックサム検査処理を指令するデータであるか判定し、当該データであればステップF182でキャラROMチェックサム検査開始処理を実行した後にステップF188に進み、当該データでなければステップF176に進む。
ステップF176では、ACTの値が音声ROMチェックサム検査処理を指令するデータであるか判定し、当該データであればステップF183で音声ROMチェックサム検査開始処理を実行した後にステップF188に進み、当該データでなければステップF177に進む。
【0655】
ステップF177では、ACTの値が制御ROM・RAM検査処理を指令するデータであるか判定し、当該データであればステップF184で制御ROM・RAM検査開始処理を実行した後にステップF188に進み、当該データでなければステップF178に進む。
ステップF178では、ACTの値が全ROM簡易検査処理を指令するデータであるか判定し、当該データであればステップF185で全ROM簡易検査開始処理を実行した後にステップF188に進み、当該データでなければステップF179に進む。
ステップF179では、ACTの値が全ROM詳細検査処理を指令するデータであるか判定し、当該データであればステップF186で全ROM詳細検査開始処理を実行した後にステップF188に進み、当該データでなければステップF180に進む。
ステップF180では、ACTの値がROM検査終了を指令するデータであるか判定し、当該データであればステップF187でROM検査終了処理を実行した後にステップF188に進み、当該データでなければ他のステップを経ることなくステップF188に進む。なお、前述のROM検査グループ処理中フラグは、例えばこのステップF187のROM検査終了処理中において、セットされた状態が解除される(即ち、クリアされる)。
【0656】
以上のステップF173乃至F187によれば、有効に受信したROM検査グループのコマンドに対して、当該コマンドに対応した動作を開始する設定を行う各開始処理(ステップF181乃至F186の何れか)、或いはROM検査グループ処理を終了させるための設定処理(ステップF187)が実行される。
ここで、上記ステップF180、F187の処理によれば、ROM検査状態においてROM検査終了を指令するコマンド(終了コマンド)を有効に受信すると、図202において矢印T6で示す状態遷移(即ち、ROM検査状態からテストモード通常状態への移行)が実現される。
そしてステップF188に進むと、ステップF188乃至F193(キャラROMピン検査処理、キャラROMチェックサム検査処理、音声ROMチェックサム検査処理、制御ROM・RAM検査処理、全ROM簡易検査処理、全ROM詳細検査処理)を順次実行した後にリターンする。これらステップF188乃至F193の処理は、前記コマンドに対応する動作を実行するための処理であり、前記コマンドを実行中でない処理は何もせず戻ってくることになる。例えば、キャラROMピン検査処理を指令するコマンドを実行中であると、当該コマンドに対応するステップF188を除くステップF189乃至F193の各ルーチンでは何もせずにリターンする。
【0657】
〔サブ間送信開始処理〕
次に、前述のメイン処理におけるステップD24で実行されるサブ間送信開始処理の詳細について図135により説明する。なお、サブ間送信とは、サブ間通信における送信のことである。サブ間通信とは、遊技場の異なるパチンコ機のサブ基板(本例では、演出制御装置)の間で行われる通信(本例では、無線通信)である。
このルーチンが開始されると、まずステップD461でサブ間送信要求があるか(即ち、前述したステップD190、或いは後述するステップD480等でセットされるサブ間送信要求フラグがセットされているか)判定し、サブ間送信要求があれば(サブ間送信要求フラグがセットされていれば)ステップD462に進み、サブ間送信要求がなければ(サブ間送信要求フラグがセットされていない場合には)リターンする。
ステップD462に進むと、サブ間送信開始待ちタイマの値が0より大きいか判定し、0より大きい場合にはステップD466に進み、0以下の場合にはステップD463乃至D465を順次実行した後にリターンする。
【0658】
ステップD463では、サブ間送信要求フラグをクリアする(セットされていない状態とする)。
ステップD464では、サブ間送信許可フラグをセットする。
ステップD465では、サブ間送信割込みを許可する。なお、サブ間送信割込みは、サブ間通信で送信するデータが発生すればこのステップD465で許可され、送信するデータが無くなれば図示省略したルーチン(サブ間送信割込み処理)で禁止される。
ステップD466に進むと、サブ間送信開始待ちタイマを更新する(即ち、タイマの値を一定値減らす)。サブ間送信開始待ちタイマは、後述するステップD479で初期値を設定され、後述するステップD491でクリアされる(値が0とされる)タイマである。
【0659】
〔サブ間受信タスク処理〕
次に、前述のメイン処理におけるステップD25で実行されるサブ間受信タスク処理の詳細について図136により説明する。
このルーチンが開始されると、まずステップD471で、サブ間受信タスク要求があるか(即ち、サブ間通信の受信データ(サブ間コマンドの受信データ)があって、図示省略したサブ間受信割込み処理でセットされるサブ間受信タスク要求フラグがセットされているか)判定し、サブ間受信タスク要求があれば(サブ間受信タスク要求フラグがセットされていれば)ステップD472に進み、サブ間受信タスク要求がなければ(サブ間受信タスク要求フラグがセットされていない場合には)リターンする。
【0660】
ステップD472に進むと、受信したサブ間コマンドのSB_MODEのデータ(図示省略したサブ間受信割込み処理でサブ間通信データバッファのsb_mode領域からSB_MODE領域にコピーした値)をSB_MODE領域からロードし、ステップD473に進む。
ステップD473に進むと、ステップD472でロードしたSB_MODEのデータが端末ID報知を示すものか判定し、端末ID報知を示すものでない場合にはステップD474に進み、端末ID報知を示すものである場合にはステップD482乃至D485を順次実行した後にステップD481に進む。
【0661】
ステップD482では、受信した端末ID(図示省略したサブ間受信割込み処理でサブ間通信データバッファの送信元ID領域からサブ間コマンド送信元ID領域にコピーした値)をサブ間コマンド送信元ID領域からロードする。
ステップD483では、ステップD482でロードした端末IDに対応する端末情報領域の端末有無情報を「あり」に設定する。
ステップD484では、ステップD482でロードした端末IDに対応する端末情報領域の端末有効期間タイマに、初期値を設定する。なお、端末有効期間タイマを設けることで、受信した端末IDの遊技機が「ある」と認識することに制限時間を設けている。つまり、サブ間通信を行う遊技機間で定期的に互いの存在を確認する必要があり、この端末有効期間タイマに基づく図示省略した処理(例えば、端末有効期間タイマがタイムアップするまでの間に同じ端末ID報知がまた受信されなければ、当該端末IDに対応する端末有無情報を「なし」に更新する処理)によって、この確認を定期的に行っている。こうしておくことで、次のような利点がある。即ち、ある遊技機が電源を落としたり、無線モジュールが突然故障したりした場合など、何らかの理由により一度は互いに通信を確立した遊技機間の通信が成立しなくなった場合、その相手が存在している前提で通信をし続けることは無駄であるし、それによりサブ間演出の効果が低下してしまう虞もある。例えば、サブ間演出として、島内の左端の遊技機から順次隣の遊技機にサブ間通信で指令を送り、島内の左端の遊技機から順次特定の登場人物等(キャラクタ)の画像を各遊技機の表示装置41に右方に流れるように表示させるといった連続演出(連携演出の一種)を行う場合、その通信が成立しなくなった遊技機のところで、この連続演出が途切れて中断してしまう虞がある。しかし、上記確認を定期的に行って端末有無情報を更新している構成であれば、途中で存在が「なし」となった遊技機にはサブ間演出の要求をしないようにできるので、例えば電源を落としてしまった台を飛ばして上記連動演出を行うなど、効率良いサブ間演出を確実に行えるようになる。
但し、サブ間演出は遊技の結果に影響を与えないものなので、上述したような弊害(例えば、存在のなくなった相手に演出要求をした結果演出が行われなくなってしまう弊害)があっても問題ないとする思想も成立する。そのような思想に従った仕様の場合には前記端末有効期間タイマは不要である。
ステップD485では、ステップD482でロードした端末IDに対応する端末情報領域のゲーム状態に、受信したゲーム状態のデータ(図示省略したサブ間受信割込み処理でサブ間通信データバッファのゲーム状態領域からサブ間コマンドゲーム状態領域にコピーした値)を格納する。
【0662】
ステップD474に進むと、ステップD472でロードしたSB_MODEのデータがack応答を示すものか判定し、ack応答を示すものでない場合にはステップD476に進み、ack応答を示すものである場合にはステップD486でack受信フラグをセットした後にステップD481に進む。
【0663】
ステップD476に進むと、ステップD472でロードしたSB_MODEのデータが演出系コマンドか判定し、演出系コマンドでない場合にはステップD481に進み、演出系コマンドである場合にはステップD477に進む。
ステップD477に進むと、サブ間データ送信中か判定し、サブ間データ送信中ならばステップD481に進み、サブ間データ送信中でなければステップD478乃至D480を順次実行した後にステップD480aに進む。なお、サブ間データ送信とは、サブ間通信におけるデータ送信(例えば、コマンドの送信)である。また本願では、サブ間通信で送受信されるコマンドをサブ間コマンドと称している。
【0664】
また、ステップD478乃至D480の処理は、受信したサブ間コマンド(特に演出系コマンド)に応じた演出を行うための処理である。
ステップD478では、受信したサブ間コマンドの内容に対応する各種演出のサブ間コマンド、或いはパラメータ等を設定する。
ステップD479では、ステップD478で設定したサブ間コマンドを他の遊技機のサブ基板に送信すべく、サブ間送信開始待ちタイマを設定する。また同様に、ステップD480ではサブ間送信要求フラグをセットする。
【0665】
なお、演出の内容によっては、サブ間コマンドが発生しない場合もあり得る。このような場合、ステップD478では、サブ間コマンドの設定は行われず、このサブ間コマンドを送信するためのステップD479及びD480の処理も実行されずにステップD480aに進む。
ステップD480aに進むと、ステップD472でロードしたSB_MODEのデータはack応答が必要なコマンドか判定し、ack応答が必要なコマンドでない場合にはステップD481に進み、ack応答が必要なコマンドである場合にはステップD488乃至D491を順次実行した後にステップD481に進む。
【0666】
ステップD488乃至D491は、ack要求に答えてack応答を返すための処理である。
ステップD488では、受信した送信元IDを送信先IDコマンドとして準備する。
ステップD489では、ack応答のSB_MODE及びSB_ACTのデータを準備する。なお、SB_MODEとSB_ACTは、サブ間コマンドを構成するデータであり、図171に示すパケット構成例(後述する)における8バイト目と9バイト目のデータである。
ステップD490では、サブ間送信データ編集処理(後述する)を実行する。
ステップD491では、サブ間送信開始待ちタイマをクリアする(タイマの値を0にする)。
【0667】
そしてステップD481に進むと、サブ間受信タスク要求フラグをクリアし、その後リターンする。
なお、ステップD477が設けられていることにより、サブ間データの送信中である場合には、サブ間コマンド(演出系コマンド)により要求された動作を行わない構成となっている。これは、サブ間コマンドは主基板からのコマンドと違って必ず対応する必要はないし、送信中ということは、他台に要求をしているか、ackを返している最中ということなので、更に他の台からの要求に応える必要はないという思想からである。また、全ての要求に応えていたら演出に矛盾が出たりする可能性も考えられるが、この構成とすれば、このような矛盾が生じる可能性が無くなるという利点があるからである。但し、この思想は基本的な考え方であり、どんな状態でも行いたい演出があった場合には、送信中でも要求された動作を行う態様も有り得る。
【0668】
〔サブ間送信データ編集処理〕
次に、上述のサブ間受信タスク処理におけるステップD490(或いは前述の単発系コマンド処理のステップD187)で実行されるサブ間送信データ編集処理の詳細について図137により説明する。なお、サブ間で送受信されるパケットの構成は後述する図171に示す構成になっているものとする。
【0669】
このルーチンが開始されると、ステップD501乃至D514を順次実行し、その後リターンする。
ステップD501では、パケット開始コード(STX)のデータ(例えば02H)を、サブ間送信バッファ0に設定する。ここで、サブ間送信バッファ0は、サブ間通信のための送信バッファ領域(サブ間送信バッファ領域)の一部であり、このサブ間送信バッファ領域のアドレス0の位置の記憶領域がサブ間送信バッファ0である(以下、他のアドレス1,2,3,…11についても同様)。
ステップD502では、サブ間送信データ数(SIZE)のデータ(例えば12バイトを示すデータ)を、サブ間送信バッファ1に設定する。
【0670】
ステップ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に設定する。
【0671】
ステップD507では、サブ間機種コード(TYPE)のデータを、サブ間送信バッファ6に設定する。
ステップD508では、サブ間コマンドMODE(SB_MODE)のデータ(例えば、前述のステップD489等で準備されたもの)を、サブ間送信バッファ7に設定する。
ステップD509では、サブ間コマンドACT(SB_ACT)のデータ(例えば、前述のステップD489等で準備されたもの)を、サブ間送信バッファ8に設定する。
ステップD510では、自分のゲーム状態STS(即ち、当該パチンコ機のゲーム状態)のデータ(例えば、今大当りの5ラウンド目である、などを示すデータ)を、サブ間送信バッファ9に設定する。
【0672】
ステップD511では、サブ間送信バッファ0からサブ間送信バッファ9までの設定データ(即ち、STXからSTSまでのデータ)のチェックサムを算出する。チェックサムの算出方法は特に限定されないが、例えば、1バイトサイズで単なる加算を行ってもよい。
ステップD512では、ステップD511で算出したチェックサムの演算結果(SUM)のデータを、サブ間送信バッファ10に設定する。
ステップD513では、パケット終了コード(ETX)のデータ(例えば03H)を、サブ間送信バッファ11に設定する。
ステップD514では、サブ間送信ポインタ(サブ間送信バッファ領域のアドレスを指定するパラメータ)のデータとしてサブ間送信バッファ0のアドレスを設定する。このサブ間送信ポインタは図示省略したサブ間送信割込み処理(サブ間送信のために、サブ間送信バッファ領域のデータを順次CPUのシリアル送信バッファに書き込むなどの処理を行うルーチン)で使用される。
【0673】
〔サブ間ack応答タスク処理〕
次に、前述のメイン処理におけるステップD26で実行されるサブ間ack応答タスク処理の詳細について図138により説明する。
このルーチンが開始されると、まずステップD521でack待ちタイマの値が0か判定し、0ならばリターンし、0でない場合にはステップD522でack待ちタイマを更新(値を規定値だけ減らす)した後にステップD523に進む。なお、ack待ちタイマは、前述したステップD188で初期値をセットされる。
【0674】
ステップD523に進むと、ack応答が受信されたか否か(即ち、ack受信フラグがセットされているか否か)を判定し、受信されたならばステップD524乃至D526を順次実行した後にリターンし、受信されていない場合(ack受信フラグがセットされていない場合)にはステップD524乃至D526を実行しないでリターンする。なお、ack受信フラグは、前述のステップD486でセットされる。
ステップD524では、ack受信フラグをクリアする。
ステップD525では、ack待ちタイマをクリアする。
ステップD526では、ack応答を受信したので、このack応答を待っていた演出に対応するための各種パラメータ設定を実行する。
【0675】
〔サブ間演出設定処理〕
次に、前述のメイン処理におけるステップD27で実行されるサブ間演出設定処理の詳細について図139により説明する。
このルーチンが開始されると、まずステップD531で、サブ間演出要求ありか否か(即ち、サブ間演出要求フラグがセットされているか否か)を判定し、サブ間演出要求ありならばステップD532に進み、サブ間演出要求なし(サブ間演出要求フラグがクリアされた状態)の場合にはリターンする。サブ間演出要求フラグは、前述のステップD478でセットされる。
【0676】
ステップD532に進むと、サブ間演出開始待ちタイマの値が0か判定し、0ならばステップD533に進み、0でない場合にはステップD538でサブ間演出開始待ちタイマを更新(値を規定値だけ減らす)した後にリターンする。サブ間演出開始待ちタイマは、前述のステップD189でセットされるタイマである。
ステップD533に進むと、受信したサブ間コマンドのSB_MODE及びSB_ACT(以下、サブ間コマンドとはSB_MODE及びSB_ACTを含むものである)のデータをロードし、次のステップD534でこのロードしたデータがサブ間連動予告系コマンドであるか判定し、サブ間連動予告系コマンドであればステップD539に進み、サブ間連動予告系コマンドでなければステップD535に進む。なお、サブ間連動予告系コマンドは、サブ間通信を行っている複数のパチンコ機で予告演出を連動させる連携演出のためのコマンドである。連携演出には、例えば同じキャラクタの画像が島内を横方向に移動するように各遊技機で順次表示されるような演出もあれば、同じ演出を同期して一斉に行う同期演出もある。
【0677】
ステップD539に進むと、ステップD533でロードしたサブ間コマンドのSB_MODE及びSB_ACTのデータが指定する演出に対応する演出動作テーブルを設定し、その後ステップD537に進む。なお、このステップD539で演出動作テーブルを設定するとは、サブ間コマンドの上記データが指定する演出を実行するためのシナリオデータを設定することを意味する。
【0678】
ステップD535に進むと、ステップD533でロードしたサブ間コマンドのデータが客待ちタイミング調整コマンドであるか判定し、客待ちタイミング調整コマンドであればステップD540に進み、客待ちタイミング調整コマンドでなければステップD536に進む。なお、客待ちタイミング調整コマンドは、サブ間通信を行っている複数のパチンコ機で客待ちデモ表示のタイミングを合わせる演出を行わせるためのコマンドであり、この場合、客待ちデモを最初から同期して実行させるコマンドである。
【0679】
ステップD536に進むと、ステップD533でロードしたサブ間コマンドのデータが正常値なら、このデータに対応する各種演出のパラメータを設定し、その後ステップD537に進む。
ステップD540に進むと、客待ちデモ演出中か否か(即ち、客待ちデモ演出を行っている最中か否か)を判定し、客待ちデモ演出中でなければ客待ちタイミング調整を行うべきでないのでステップD537に進み、客待ちデモ演出中であれば客待ちタイミング調整を行うべくステップD541に進む。
ステップD541では、サブ間コマンドを受信した当該パチンコ機(即ち、自機)の客待ちデモのシナリオテーブルを再設定するようにして、客待ちデモ演出を最初から行うように設定し、その後ステップD542に進む。
ステップD542に進むと、P機状態を客待ちAとしてステップD537に進む。
【0680】
上記ステップD541によれば、客待ちデモ演出が図柄表示(客待ちA)の最初から開始されることになる。これにより、ステップD535で判定された客待ちタイミング調整コマンドを送信した送信元のパチンコ機と、この客待ちタイミング調整コマンドを受信した自機及び他のパチンコ機とで、客待ちデモ演出が図柄表示(客待ちA)の最初から同期して開始される。なお、こうして開始された客待ちデモ演出は、再設定された客待ちデモ用のシナリオテーブルによって制御される。
【0681】
そしてステップD537では、サブ間演出要求フラグをクリアし、その後リターンする。
なお本例では、このように、予告演出を連動させるものと、客待ちデモ演出のタイミングを合わせる演出の処理を、サブ間演出のための処理の具体例として挙げた。しかし、サブ間演出の内容は、このような態様に限定されず、本例の態様に代えて、或いは本例の態様に加えて、他の内容のサブ間演出を行う構成としてもよい。
本例では、煩雑を避けるために、それら他の種類のサブ間演出の設定処理についてはステップD536でまとめて図示しており、その詳細については図示及び説明を省略する。
【0682】
〔シナリオ設定処理〕
次に、前述のメイン処理におけるステップD28で実行される処理の詳細について図140により説明する。
このルーチンが開始されると、ステップD551乃至D566を順次実行した後にリターンする。
ステップD551では、シナリオ管理領域0(シナリオレイヤー番号0)に対応するシナリオ管理領域のアドレス領域を準備し、次のステップD552では、ステップD551の準備に基づいてシナリオ解析処理(後述する)を実行する。ここで、「アドレス領域を準備し」とは、後の処理で当該アドレス領域に設定されているデータを読み取るために、当該アドレス領域自体のアドレスを準備することを意味する。
【0683】
以下同様に、ステップD553では、シナリオ管理領域1(シナリオレイヤー番号1)に対応するシナリオ管理領域のアドレス領域を準備し、この準備に基づいて次のステップD554でシナリオ解析処理を実行する。
ステップD555では、シナリオ管理領域2(シナリオレイヤー番号2)に対応するシナリオ管理領域のアドレス領域を準備し、この準備に基づいて次のステップD556でシナリオ解析処理を実行する。
ステップD557では、シナリオ管理領域3(シナリオレイヤー番号3)に対応するシナリオ管理領域のアドレス領域を準備し、この準備に基づいて次のステップD558でシナリオ解析処理を実行する。
ステップD559では、シナリオ管理領域4(シナリオレイヤー番号4)に対応するシナリオ管理領域のアドレス領域を準備し、この準備に基づいて次のステップD560でシナリオ解析処理を実行する。
ステップD561では、シナリオ管理領域5(シナリオレイヤー番号5)に対応するシナリオ管理領域のアドレス領域を準備し、この準備に基づいて次のステップD562でシナリオ解析処理を実行する。
ステップD563では、シナリオ管理領域6(シナリオレイヤー番号6)に対応するシナリオ管理領域のアドレス領域を準備し、この準備に基づいて次のステップD564でシナリオ解析処理を実行する。
ステップD565では、シナリオ管理領域7(シナリオレイヤー番号7)に対応するシナリオ管理領域のアドレス領域を準備し、この準備に基づいて次のステップD566でシナリオ解析処理を実行する。
【0684】
なお本例の場合、シナリオレイヤーは前述したように8個あり、シナリオレイヤー番号は0〜7まである。そして、これら8個のシナリオレイヤーのうち、基本的に、シナリオレイヤー0は背景用であり、シナリオレイヤー1は左図柄用であり、シナリオレイヤー2は右図柄用であり、シナリオレイヤー3は中図柄用であり、シナリオレイヤー4は予告1用であり、シナリオレイヤー5は予告2用であり、シナリオレイヤー6は保留用であり、シナリオレイヤー7は第4図柄用である。
【0685】
但し、この態様に限られない。例えば、本実施例はシナリオレイヤーが8個のフローチャートにしているが、このシナリオレイヤーの数はこれに限られない。特に背景や予告に使用するレイヤーは機種仕様により増減し、本実施例はなるべく少数に限定して説明している。また、各シナリオレイヤーの制御対象も上記実施例に限られず、各種割り振りが有り得る。例えば、シナリオレイヤー0は背景用であり、シナリオレイヤー1はカットイン予告用であり、シナリオレイヤー2は左図柄用であり、シナリオレイヤー3は右図柄用であり、シナリオレイヤー4は中図柄用であり、シナリオレイヤー5は保留用であり、シナリオレイヤー6は他の予告用であり、シナリオレイヤー7は第4図柄用であるという態様でもよい。
【0686】
また、シナリオ管理領域のアドレス領域は、既述したようにシナリオレイヤー毎に設けられており、制御するものがある場合には、対応するシナリオ管理領域X(X=0〜7の何れか)のアドレス領域にシナリオ管理領域のアドレスが保存されており、制御するものがない場合には、対応するシナリオ管理領域Xのアドレス領域の中はNULLに設定されている(前述したステップD243、D247参照)。例えば、客待ちのムービー中には保留の表示を行わないので、背景の領域(シナリオ管理領域0のアドレス領域)にはアドレス(シナリオ管理領域0のアドレス)が設定されているが、保留の領域(シナリオ管理領域6のアドレス領域)にはNULLが設定されている。
【0687】
〔シナリオ解析処理〕
次に、上述のシナリオ設定処理におけるステップD552等で実行されるシナリオ解析処理の詳細について図141及び図142により説明する。
このルーチンが開始されると、まずステップD571でbrkの値(後述する処理の繰り返しに利用されるデータ)を0に設定し、次いでステップD572において、準備されているシナリオ管理領域Xのアドレス領域に設定されているデータ(シナリオ管理領域Xのアドレス、或いはNULL)のデータをロードした後、ステップD573に進む。ここで、「準備されているシナリオ管理領域Xのアドレス領域」とは、例えば、本ルーチンが前述のステップD552で実行されている場合には、その直前のステップD551で準備されたアドレス領域(シナリオ管理領域0のアドレス領域)であり、本ルーチンが前述のステップD554で実行されている場合には、その直前のステップD553で準備されたアドレス領域(シナリオ管理領域1のアドレス領域)であり、他のケースも同様に直前のステップで準備されたものである。
【0688】
ステップD573に進むと、ステップD572でロードしたアドレスのデータがNULLか判定し、NULLならば制御不要なのでリターンし、NULLでなければステップD574に進む。
ステップD574に進むと、ステップD572でロードしたアドレスのシナリオ管理領域におけるシナリオ用タイマの値を読み取り、このシナリオ用タイマの値が0より小さいか判定し、0より小さい場合には異常なのでリターンし、0以上である場合にはステップD575を実行してステップD576に進む。なお、前記シナリオ用タイマの値は、シナリオ制御データが設定される度に前述のステップD244でまず0に設定されるが、0が下限であるので、0より小さい場合は異常と判定する。またステップD575では、前記シナリオ用タイマの値が0でなければ、このシナリオ用タイマの値を1だけ減らす更新を実行する。
ステップD576に進むと、前記シナリオ用タイマの値が0より大きいか判定し、0より大きい場合には未だタイムアップしていないのでリターンし、0以下である場合にはステップD577に進む。
【0689】
これらステップD574乃至D576によれば、ウェイト用のタイマ管理が行われる。即ち、対象のシナリオ管理領域(ステップD572でロードしたアドレスのシナリオ管理領域)におけるシナリオ用タイマ領域に設定されたシナリオ用タイマの値に対応する時間だけ、対象のシナリオテーブル(対象のシナリオ管理領域におけるシナリオ用データテーブル領域に設定されたアドレスのシナリオテーブル)の制御進行を遅らせる動作が実現される。ここで、「シナリオテーブルの制御進行を遅らせる動作」とは、シナリオテーブルの進行にウェイトを掛ける(シナリオテーブルの次の行に進まずにそこで待つ。その時の演出をし続ける。)ことを意味する。例えば、図177の20行目(//19)では、定数ウェイトコードが設定されてウェイト時間値が(300)であるため、300フレームに相当する時間この行にとどまり、当該時間経過後に次の行に進行するが、この動作が「シナリオテーブルの制御進行を遅らせる動作」に相当する。なお、シナリオテーブルにおいて、ウェイト時間値とウェイト時間値の間にあるコード(定数ウェイトコード等(PB待ちコード含む)が設定された行と、次に定数ウェイトコード等が設定された行との間にある行のオペコード)は全て同時期に実行される。そして、ステップD575の更新により前記シナリオ用タイマの値が0以下になると、シナリオ用タイマがタイムアップしたと判断されるため、対象のシナリオテーブルの制御処理を進行させるべく、ステップD576を経てステップD577に進む構成となっている。但し、対象のシナリオテーブルの制御処理(ステップD584以降)は、後述するPB有効時間のためのタイマ管理の処理の後に実行される。
【0690】
即ち、ステップD577に進むと、対象のPB用タイマの値(ステップD572でロードしたアドレスのシナリオ管理領域におけるPB用タイマ領域の値)を読み取り、このPB用タイマの値が0より大きいか判定し、0より大きい場合にはタイムアップしていないのでステップD578に進み、0以下である場合にはタイムアップしているのでステップD583に進む。
ステップD578に進むと、PB操作フラグがセットされているか判定し、PB操作フラグがセットされていればステップD579に進み、PB操作フラグがセットされていない場合にはステップD582で対象のPB用タイマの値を1だけ減らす更新を実行した後にステップD583に進む。ここで、PB操作フラグは、前述のメイン処理におけるステップD21で実行される演出ボタン入力処理において、PB(プッシュボタン9)の押下操作が検出されるとセットされるフラグである。
【0691】
ステップD579に進むと、対象のPB用タイマのこの時点での値(即ち、PBが押された時点におけるPB有効時間の残り時間)をPB演出加算時間として保存し、次いでステップD580で対象のPB用タイマの値を0に設定し、次にステップD581で対象のシナリオ管理領域のPB検知フラグ領域にフラグをセットする(即ち、PB検知フラグが立てられていることを示すデータを設定する)。これらステップD579乃至D581では、PBが押下操作されたので、PB用タイマの残り時間をPB演出加算時間として記憶し(後述するステップD696のため)、PB用タイマを0にリセットし、PBが操作されたことを示すPB検知フラグをシナリオ制御のためにシナリオ管理領域にセットしている。
そして、ステップD583に進むと、対象のPB用タイマの値が0より大きいか判定し、0より大きい場合にはPB操作が検出されずタイムアップもしていないのでリターンし、0以下である場合にはPB操作がされたかタイムアップしたのでステップD584に進む。
【0692】
上記ステップD577乃至D583によれば、PB有効時間のためのタイマ管理が行われる。即ち、対象のシナリオ管理領域(ステップD572でロードしたアドレスのシナリオ管理領域)におけるPB用タイマ領域に0より大きなPB用タイマの値が設定されている場合には、このPB用タイマの値に対応する時間だけ、対象のシナリオテーブル(対象のシナリオ管理領域におけるシナリオ用データテーブル領域に設定されたアドレスのシナリオテーブル)の制御進行を遅らせてPB有効時間を設ける動作が実現される。ここで、「シナリオテーブルの制御進行を遅らせてPB有効時間を設ける動作」とは、対象のPB用タイマの値が0になる(即ちPB用タイマがタイムアップする)か、或いはPBが押下操作されるまで、シナリオテーブルの進行にウェイトを掛ける(シナリオテーブルの次の行に進まずにそこで待つ。その時の演出をし続ける。)ことを意味する。例えば、図177の28行目(//27)では、定数ウェイトコードが設定されてウェイト時間値が(30)であるため、30フレームに相当する時間この行にとどまり、この時間経過後に次の29行目に進行するが、この28行目による動作は前述したシナリオ用タイマによる「シナリオテーブルの制御進行を遅らせる動作」である。一方、次の29行目(//28)では、PB待ちコードが設定されて有効時間値が(2970)であるため、後述するステップD702でこの有効時間値(2970)がPB用タイマに設定され、PB押下操作が無ければ最大2970フレームに相当する有効時間この行にとどまり、この有効時間内にPB押下操作があれば即座に次の行に進行するが、このようにPB用タイマに設定される有効時間(PB有効時間)だけPBの押下操作を待つ動作が「シナリオテーブルの制御進行を遅らせてPB有効時間を設ける動作」に相当する。そして、PBの操作がないままにステップD582の更新により前記PB用タイマの値が0以下になって前記PB用タイマがタイムアップするか、前記PB用タイマがタイムアップするまでのPB有効時間の間にPBが操作されると、ステップD582又はステップD579乃至D581を経てステップD583に進み、この場合はステップD583の判定結果がNO(PB用タイマは0)になってステップD584に進む。
但し、前記PB用タイマ領域に設定されたPB用タイマの値が当初から0の場合には、ステップD577からステップD583に進み、さらにステップD583からステップD584に進んで即座に制御が進行する(この場合のPB有効時間は0(無し)となる)。なお、PB有効時間は予告演出等の場合において設けられるため、それ以外の場合にはPB用タイマ領域の値は0に設定されていてPB有効時間は設けられない。
【0693】
次にステップD584以降では、対象のシナリオテーブルの制御処理が実行される。以下、これを説明する。
ステップD584に進むと、brkの値として0でない値が設定されるまで、ループ端である当該ステップD584からステップD623までの間の処理を繰り返し実行する。つまり、後方のループ端であるステップD623では、その時点のbrkの値を読み取って、brkの値が0であればステップD584に戻って次のステップD585から処理を繰り返す。
【0694】
即ち、ステップD584に進むと、まずステップD585乃至D588を順次実行した後に、ステップD589に進む。
ステップD585では、対象のシナリオ管理領域におけるシナリオ用データテーブル領域からシナリオテーブルのアドレスをロードする。例えば、客待ちデモ時のシナリオレイヤー番号0の場合には、図177に示すシナリオテーブルのアドレスが、このステップD585でロードされる。
ステップD586では、ステップD585でロードしたアドレスによって指定されるシナリオテーブルの特定の行(指定行)のオペコードを取得する。なお既述したように、シナリオテーブルは、例えば図185図192図177に示すように、オペコードとオペランドのデータ(シナリオデータ)が各行に設定されたものである。例えば図185の場合、対象がシナリオ管理領域0(シナリオレイヤー番号0)であり指定行が1行目であると、最上段のシナリオレイヤー0の1行目のオペコードのデータである「モーション継続コード」がステップD586で取得される。また、図177の場合、例えば指定行が1行目であると、この1行目のオペコードのデータである「モーション1削除コード」(具体的データとしては、例えば「51h」)がステップD586で取得される。或いは、図177の場合、例えば指定行が16行目であると、16行目のオペコードのデータである「モーション10登録コード」(具体的データとしては、例えば「4Ah」)がステップD586で取得される。
【0695】
ステップD587では、直前のステップD586で取得したオペコードを上位ビットと下位ビットに分離して準備する。例えば、オペコードのデータが前述した「51h」である場合、上位ビットである「5」と下位ビットである「1」とを分離してそれぞれ準備する。なお、オペコードの上位ビットと下位ビットには、それぞれ意味が持たせてある(但し、下位ビットには意味が無い場合がある)。例えば、「モーション1削除コード」である「51h」のうち、上位ビットである「5」はモーション削除を意味し、下位ビットである「1」は対象(この場合、モーション削除の対象)のモーションのレイヤーがモーション1であることを意味している。
ステップD588では、ステップD585でロードしたアドレスによって指定されるシナリオテーブルの特定の行(指定行)のオペランドを取得し、準備する。例えば図185の場合、対象がシナリオ管理領域0(シナリオレイヤー番号0)であり指定行が1行目であると、最上段のシナリオレイヤー0の1行目のオペランドのデータである「モーションインデックスNo.(51)」をステップD588で取得して準備する。また図177の場合、指定行が16行目(オペコードは「モーション10登録コード」)であると、この16行目のオペランドのデータである「モーションインデックスNo.(−1)」をステップD588で取得して準備する。
【0696】
ステップD589に進むと、準備したオペコード上位データ(ステップD587で分離して準備したデータ、以下同様)を判定し、モーション登録を指令するデータ(モーション登録コード)であるとステップD601でモーション登録処理(後述する)を実行した後にステップD621に進み、モーション登録を指令するデータでない場合にはステップD590に進む。
ステップD590に進むと、準備したオペコード上位データを判定し、モーション削除を指令するデータ(モーション削除コード)であるとステップD602でモーション削除処理(後述する)を実行した後にステップD621に進み、モーション削除を指令するデータでない場合にはステップD591に進む。
【0697】
ステップD591に進むと、準備したオペコード上位データを判定し、モーション継続を指令するデータ(モーション継続コード)であるとステップD603でモーション継続処理(後述する)を実行した後にステップD621に進み、モーション継続を指令するデータでない場合にはステップD592に進む。
ステップD592に進むと、準備したオペコード上位データを判定し、定数ウェイトを指令するデータ(定数ウェイトコード)であるとステップD604で定数ウェイト処理(後述する)を実行した後にステップD621に進み、定数ウェイトを指令するデータでない場合にはステップD593に進む。
【0698】
ステップD593に進むと、準備したオペコード上位データを判定し、可変ウェイトを指令するデータ(可変ウェイトコード)であるとステップD605で可変ウェイト処理(後述する)を実行した後にステップD621に進み、可変ウェイトを指令するデータでない場合にはステップD594に進む。
ステップD594に進むと、準備したオペコード上位データを判定し、PB待ちを指令するデータ(PB待ちコード)であるとステップD606でPB待ち処理(後述する)を実行した後にステップD621に進み、PB待ちを指令するデータでない場合にはステップD595に進む。
【0699】
ステップD595に進むと、準備したオペコード上位データを判定し、PB判定分岐を指令するデータ(PB判定分岐コード)であるとステップD607でPB判定分岐処理(後述する)を実行した後にステップD621に進み、PB判定分岐を指令するデータでない場合にはステップD596に進む。
ステップD596に進むと、準備したオペコード上位データを判定し、図柄停止を指令するデータ(停止図柄setコード)であるとステップD608で図柄停止処理を実行した後にステップD621に進み、図柄停止を指令するデータでない場合にはステップD597に進む。
【0700】
ステップD597に進むと、準備したオペコード上位データを判定し、図柄逆算差替を指令するデータ(図柄逆算差替コード)であるとステップD609で図柄逆算差替処理(後述する)を実行した後にステップD621に進み、図柄逆算差替を指令するデータでない場合にはステップD598に進む。
ステップD598に進むと、準備したオペコード上位データを判定し、変動シナリオ切替を指令するデータ(変動シナリオ切替コード)であるとステップD610で変動シナリオ切替処理を実行した後にステップD621に進み、変動シナリオ切替を指令するデータでない場合にはステップD599に進む。
【0701】
ステップD599に進むと、準備したオペコード上位データを判定し、繰り返しを指令するデータ(繰返しコード)であるとステップD611で繰り返し処理を実行した後にステップD621に進み、繰り返しを指令するデータでない場合にはステップD600に進む。
ステップD600に進むと、準備したオペコード上位データを判定し、終了を指令するデータ(終了コード)であるとステップD612で終了処理を実行した後にステップD621に進み、終了を指令するデータでない場合には図示省略した他のステップに進む。なお、図示省略した他のステップ(図142において波線で示した箇所にあるステップ)は、上述したステップD589乃至D612と同様に、準備したオペコード上位データの内容を判定し、その判定結果が他の種類のデータ(コード)である場合に対応する処理を実行してステップD621に進むというもので、準備したオペコード上位データが何れの種類のデータ(コード)にも該当しない場合にはリターンする構成となっている。
【0702】
次にステップD621に進むと、対象のシナリオレイヤー番号に対応するシナリオ管理領域のアドレス領域に、この時点で設定されているデータを読み取り、このデータがNULLか判定し、NULLならばステップD622でbrkの値を1に設定してステップD623に進み、NULLでなければステップD622を実行しないでステップD623に進む。
そしてステップD623に進むと、前述したようにその時点のbrkの値を読み取って、brkの値が0であればステップD584に戻って次のステップD585から処理を繰り返し、brkの値が0でない場合には本ルーチンを終了してリターンする。
【0703】
このため、上記ステップD601乃至D612等の何れかの処理において、brkの値が0でない値に設定されるか、或いは、対象のシナリオレイヤー番号に対応するシナリオ管理領域のアドレス領域にNULLが設定されると、ステップD584とD623をループ端とするループ処理を終了してリターンすることになる。そして、このようにして当該ループ処理を終了するまでは、シナリオ管理領域におけるシナリオ用データテーブル領域のアドレス(シナリオテーブルとその行を指定するアドレス)が適宜変更されて上記ループ処理が繰り返されて一連の演出の制御が実行される。
なお、上記のサブルーチン群(ステップD601乃至D612)は一例であり、機種の仕様次第で変わる。
【0704】
〔モーション登録処理〕
次に、上述のシナリオ解析処理におけるステップD601で実行されるモーション登録処理の詳細について図143により説明する。
このルーチンが開始されると、まずステップD631、D632を順次実行した後にステップD633に進む。
ステップD631では、対象のシナリオ管理領域のシナリオ用データテーブル領域内のテーブルアドレスを次レコード(テーブルの次の行を指定するアドレス)に更新する。これは、前述のステップD585が次回実行されるときの指定行を次の行に進めておくための更新処理であり、この更新処理が行われることによって対象のシナリオテーブルの指定行が次の行に切り替えられて前述のループ処理(ステップD584〜D623)が繰り返されることになる。
【0705】
ステップD632では、ステップD587で分離されたオペコードの下位ビットのデータに対応するモーション管理領域のアドレス領域からモーション管理領域のアドレスをロードして準備する。本例の場合、演出制御装置300のRAM311aには、「モーション管理領域のアドレス領域」と「モーション管理領域」というモーション管理用の記憶領域が設けられる構成となっている。このうち、モーション管理領域は、表示制御する(画面上に表示しているとは限らない)オブジェクトの数(最大数)である表示数(例えば左図柄の場合、次図柄、現図柄、前図柄の3個)を記憶する領域(表示数の領域)と、何フレームまで処理が進んだかを示すフレーム番号を記憶する領域(フレーム番号の領域)と、モーションテーブルの何行目まで処理が進んだかを示すコマンド位置を記憶する領域(コマンド位置の領域)と、複数あるモーション用リストテーブルの中でどのテーブルを使用するかを示すアドレスのデータ(モーションインデックスに対応)を記憶する領域(モーション用リストテーブル領域)と、表示数分の表示情報領域とを含む構造である。
【0706】
また、同一構造のモーション管理領域がモーションのレイヤー(本例では、モーション0〜13まである)に対応してこのモーションのレイヤー分存在し、本例ではモーションのレイヤーが14個あるので、このモーション管理領域も14個(モーション管理領域0〜13)存在する。さらに、このモーション管理領域に対応して、モーション管理領域のアドレス領域も本例では14個(モーション0用アドレス〜モーション13用アドレス)ある。そして、上記ステップD632では、このように複数あるモーション管理領域のうちの一つを特定するために、オペコード下位ビットのデータが指定するモーションのレイヤー番号に対応するモーション管理領域(以下、対応モーション管理領域という)の先頭アドレスを、対応するモーション管理領域のアドレス領域から読み出して準備する。なお本願では、モーションのレイヤー番号(本例では、0〜13)を、モーション番号と簡略化して表記したり、モーション管理領域X(Xはモーション番号に対応する番号)というように使用したりする場合がある。
【0707】
なお、モーション管理領域内の表示情報領域は、表示数(オブジェクトの数)分だけ複数あり、各表示情報領域がそれぞれ、表示種別、エフェクトタイプ、エフェクトパラメータ、表示左上点のX座標、表示左上点のY座標、表示右上点のX座標、表示右上点のY座標、表示左下点のX座標、表示左下点のY座標、画像インデックス、バックグラウンドカラー、フォアグラウンドカラー、IPicture(Iピクチャ)のみの動画時のフレームカウント、及びビヘイビアインデックスの各データを記憶する領域を含んでいる。
【0708】
ここで、表示種別は、当該オブジェクトの種別(静止画か動画(ムービー)かを示す情報の他、ムービーの種類(Iピクチャか否かなど)を示す情報を含む)である。エフェクトタイプは、画像に加えるエフェクト(透過性を持たせるなどの加工処理)の種類を示す情報である。エフェクトパラメータは、前記エフェクトのパラメータ(透過性を持たせる場合の透過度など)である。X座標及びY座標は、画像の表示位置を特定するデータであり、本例ではポリゴン表示機能(立体を多面体として表示する機能)のために、表示左上点、表示右上点、表示左下点の3点の座標がある。画像インデックスは、静止画又はムービーを特定する番号である。IPictureのみの動画時のフレームカウントとは、何フレーム目のデータがIPicture(即ちIフレーム)かを示すデータである。ビヘイビアインデックスは、ビヘイビア(図柄差替え)のためのインデックスである。なお、ビヘイビア(図柄差替え)とは、同じ大きさ同じ表示位置でキャラクタ(静止画或いは動画)のみを差し替えるもので、前述のステップD385乃至D390で説明したカットインキャラ差替えなどとは異なる。前述のカットインキャラ差替えは、キャラクタを表示する大きさや表示位置も差替えにより変化し得る。
【0709】
次に、ステップD633に進むと、ステップD632でロードしたモーション管理領域のアドレスがNULLか判定し、NULLならばステップD635に進み、NULLでなければステップD634でモーションデータ初期化処理1(後述する)を実行した後にステップD635に進む。
ステップD635に進むと、ステップD587で分離されたオペコードの下位ビットのデータに対応するモーション管理領域の先頭アドレスを設定して準備し、ステップD636に進む。
ステップD636に進むと、前記オペコードの下位ビットのデータに対応するモーション管理領域のアドレス領域にステップD635で準備した先頭アドレスを設定し、ステップD637に進む。
【0710】
これらステップD632乃至D636では、何れにせよ最終的には、ステップD636において、ステップD587で分離されたオペコードの下位ビットに対応するモーション管理領域の先頭アドレスを対応するモーション管理領域のアドレス領域に設定するのであるが、対応するモーション管理領域のアドレス領域にNULL以外のアドレスのデータが既に設定されていた場合には、動画展開に使っていた展開領域の開放設定等を行うモーションデータ初期化処理1(後述する)が必要になるので、これをステップD634で実行している。
【0711】
次に、ステップD637に進むと、ステップD588で準備したオペランドのデータが0以上か判定し、0以上ならばステップD638乃至D640を順次実行した後にリターンし、0未満(即ち、マイナスの値)ならばステップD641乃至D643を順次実行した後にリターンする。
ステップD638では、前記オペランドのデータ(ステップD588で準備したオペランドのデータ、以下同様)を、モーションインデックスとして準備する。
ステップD639では、オペコード下位に対応する使用中モーションインデックスを記憶する領域(以下、使用中モーションインデックス領域という)に、ステップD638で準備したデータを設定する。なお、使用中モーションインデックス領域は、モーション用リストテーブルにおける制御対象の行を指定するモーションインデックス(使用中モーションインデックス)のデータを、モーション番号毎に記憶する領域であり、モーション番号毎に設けられている。このステップD639では、ステップD587で分離されたオペコードの下位ビットで特定されるモーション番号に対応する使用中モーションインデックス領域に、ステップD638で準備したデータを設定する(即ち保存する)。
ステップD640では、表示数等のデータを初期化するモーションデータ初期化処理2(後述する)を実行する。
【0712】
一方、ステップD641では、オペコード下位に対応するモーションインデックスのデータを、対応するモーションインデックス領域からロードし、準備する。なお、モーションインデックス領域には、前述のステップD291乃至D294で説明した記憶領域(保留用インデックス領域、第4図柄インデックス領域)や、前述のステップD386、D388、D390で説明した記憶領域(SU1カットイン領域、SU2カットイン領域、SU3カットイン領域)がある。このステップD641では、このように複数あるRAM内のモーションインデックス領域のうち、ステップD587で分離されたオペコードの下位ビットと現時点の遊技機の状態(確変中か否かなど)で特定されるモーションインデックス領域からモーションインデックスのデータを取り出して準備する。
次にステップD642では、オペコード下位に対応する使用中モーションインデックス領域に、ステップD641で準備したデータを設定する。
そしてステップD643では、表示数等のデータを初期化するモーションデータ初期化処理2(後述する)を実行する。
【0713】
以上説明したステップD637乃至D643のうち、ステップD637の判定結果がYES(オペランドが0以上)となってステップD638乃至D640を実行するルートと、ステップD637の判定結果がNO(オペランドが0未満)となってステップD6412乃至D643を実行するルートとは、以下のように異なる。即ち、前者のルートは、ROMに保存されたシナリオテーブルに設定されたモーションインデックスの値(固定値)を制御に使用するルートであり、後者のルートは、RAM内のモーションインデックス領域に保存されたモーションインデックスの値(固定値でない)を制御に使用するルートである。遊技機の状態(確変中か否かなど)に応じて使用するモーションインデックスを変えたい場合に、前記オペランドの値としてマイナスの値(例えば「−1」)が設定されていて後者のルートが実行される構成となっている。
【0714】
〔モーションデータ初期化処理1〕
次に、前述のモーション登録処理におけるステップD634(或いは後述するステップD674等)で実行されるモーションデータ初期化処理1の詳細について図144左側により説明する。なお、演出制御装置300の制御処理の説明においてモーション制御データとは、モーション管理領域に保存される表示数、フレーム番号等のデータである。
このルーチンが開始されると、まず、変数iを初期値0から増分1だけ増加させつつ終値(終値=表示数−1)になるまで、ステップD651乃至ステップD655を繰り返し実行し、その後ステップD656に進む。即ち、ステップD651ではルーチン開始直後は変数iを0としてステップD652に進む。ステップD655では、変数iが終値未満である場合にはステップD651に戻り、変数iが終値である場合にはステップD656に進む。そしてステップD651に戻ると、変数iの値を1だけ増加させてステップD652に進む。なお、終値の値は、ステップD587で分離されたオペコードの下位ビットに対応するモーション管理領域(以下、対象のモーション管理領域という)に設定されている表示数のデータから1を減算した値である。即ち、このルーチンでは、この表示数分だけステップD651乃至D655のループ処理を繰り返し実行し、その後ステップD656に進む。
【0715】
ステップD652に進むと、対象のモーション管理領域における変数iに対応する表示情報領域のアドレスを設定し、その後ステップD653に進む。このステップD652では、例えば変数i=0ならば、対象のモーション管理領域において、表示数分だけ複数存在する表示情報領域のうちの最初の表示情報領域のアドレスを設定する。
ステップD653に進むと、直前のステップD652でアドレスが設定された表示情報領域における表示種別のデータを読み取り、この表示種別が動画か否か判定する。そして、表示種別が動画であればステップD654でその展開領域(圧縮された動画データの展開に使用していた領域)の解放設定を行った後にステップD655に進み、動画でなければステップD654を実行しないでステップD655に進む。ステップD655に進むと、前述したように、変数iが終値未満である場合にはステップD651に戻り、変数iが終値である場合にはステップD656に進む。
【0716】
次に、ステップD656に進むと、ステップD656乃至D658で対象のモーション管理領域のパラメータを初期化する処理を行い、その後リターンする。即ち、ステップD656では表示数を0に設定し、ステップD657ではフレーム番号を−1に設定し、ステップD658ではコマンド位置を0に設定する。
【0717】
〔モーションデータ初期化処理2〕
次に、前述のモーション登録処理におけるステップD640、D643(或いは後述するステップD689等)で実行されるモーションデータ初期化処理2の詳細について図144右側により説明する。
このルーチンが開始されると、まずステップD661乃至D663で対象のモーション管理領域のパラメータを初期化する処理を行い、その後ステップD664に進む。即ち、ステップD661では表示数を0に設定し、ステップD662ではフレーム番号を−1に設定し、ステップD663ではコマンド位置を0に設定する。
そしてステップD664に進むと、対象のモーション管理領域におけるモーション用リストテーブル領域に、使用中モーションインデックス(前記ステップD642で設定したデータ)に対応するアドレス(モーション用リストテーブルとその行を指定するアドレス)を設定し、その後リターンする。
【0718】
〔モーション削除処理〕
次に、前述のシナリオ解析処理におけるステップD602で実行されるモーション削除処理の詳細について図145左側により説明する。
このルーチンが開始されると、まずステップD671、D672を順次実行した後にステップD673に進む。
ステップD671では、前記ステップD631と同様に、対象のシナリオ管理領域のシナリオ用データテーブル領域内のテーブルアドレスを次レコード(テーブルの次の行を指定するアドレス)に更新する。
ステップD672では、前記ステップD632と同様に、対象のモーション管理領域のアドレス領域からモーション管理領域のアドレスをロードして準備し、ステップD673に進む。
【0719】
次に、ステップD673に進むと、ステップD672でロードしたモーション管理領域のアドレスがNULLか判定し、NULLならばステップD675に進み、NULLでなければステップD674で前記モーションデータ初期化処理1を実行した後にステップD675に進む。
ステップD675に進むと、対象のモーション管理領域のアドレス領域にNULLを設定し、ステップD676に進む。
ステップD676に進むと、前記オペコード(ステップD587で分離されたオペコード、以下同様)の下位ビットのデータに対応する使用中モーションインデックスのデータをクリアし、その後リターンする。
以上説明したモーション削除処理は、キャラクタ等の制御を終了する時に実行されて、これにより、モーション情報(モーション管理領域のアドレス領域のデータや、使用中モーションインデックス領域のデータ)が削除される。
【0720】
〔モーション継続処理〕
次に、前述のシナリオ解析処理におけるステップD603で実行されるモーション継続処理の詳細について図145右側により説明する。
このルーチンが開始されると、まずステップD681、D682を順次実行した後にステップD683に進む。
ステップD681では、前記ステップD631と同様に、対象のシナリオ管理領域のシナリオ用データテーブル領域内のテーブルアドレスを次レコード(テーブルの次の行を指定するアドレス)に更新する。
ステップD682では、前記オペコードの下位ビットに対応する使用中モーションインデックスのデータをロードする。
【0721】
ステップD683に進むと、ステップD682でロードした使用中モーションインデックスのデータが、ステップD588で取得したオペランドと一致するか判定し、一致する場合にはリターンし、一致しない場合にはステップD684以降を実行する。ここでは、現在制御中のモーションと、シナリオテーブルで指定されたモーションとが同一か判定し、同一であれば現在制御中のモーションをそのまま継続すべきであるので何も処理することなくリターンし、同一でなければ新たなモーション登録を行うべくステップD684以降を実行する構成となっている。
そして、ステップD684以降では、前述したモーション登録処理(シナリオテーブルの値を使用するルート)と同様の処理を行っている。
即ち、ステップD684では、前記ステップD632と同様に、対象のモーション管理領域のアドレス領域からモーション管理領域のアドレスをロードして準備し、ステップD685に進む。
【0722】
次に、ステップD685に進むと、ステップD684でロードしたモーション管理領域のアドレスがNULLか判定し、NULLならばステップD687に進み、NULLでなければステップD686で前記モーションデータ初期化処理1を実行した後にステップD687に進む。
ステップD687に進むと、対象のモーション管理領域の先頭アドレスを設定して準備し、ステップD688に進む。
ステップD688に進むと、対象のモーション管理領域のアドレス領域にステップD687で準備した先頭アドレスを設定し、ステップD689に進む。
ステップD689に進むと、モーションデータ初期化処理(前述のモーションデータ初期化処理2)を実行する。
ステップD690では、前記オペコードの下位ビットに対応する使用中モーションインデックス領域に、前記オペランドのデータを設定し、その後リターンする。
以上説明したモーション継続処理では、シナリオテーブルで指定されたモーション情報が現在制御している内容と同じならそのまま継続、違うなら新たに登録する処理が実行される。これにより、例えば、通常変動中の背景はリーチ等で背景変化しなければ複数の変動にまたがってムービーが継続されるが、リーチが発生したりすると頭からの新規再生となる。
【0723】
〔定数ウェイト処理〕
次に、前述のシナリオ解析処理におけるステップD604で実行される定数ウェイト処理の詳細について図146上側により説明する。
このルーチンが開始されると、まずステップD691で、前記ステップD631と同様の更新処理を実行する。
次にステップD692で、対象のシナリオ管理領域のシナリオ用タイマ領域に、前記オペランドのデータを設定する。
次いでステップD693で、brkの値を1に設定してリターンする。
本ルーチンによれば、指定された固定時間だけ待つ場合の時間値等が設定される。例えば、図177に示すシナリオテーブルおける20行目(//19)の場合、オペコードが定数ウェイトコードであるため本ルーチンが実行され、オペランドのウェイト時間が(300)であるため、上記ステップD692でシナリオ用タイマ領域の値として300(10秒=300×1/30)が設定される。そして、上記ステップD693でbrkの値が1になるので、前述したシナリオ解析処理におけるループ処理(ステップD584からD623)の繰り返しが終了する。
【0724】
〔可変ウェイト処理〕
次に、前述のシナリオ解析処理におけるステップD605で実行される可変ウェイト処理の詳細について図146下側により説明する。
このルーチンが開始されると、まずステップD695で、前記ステップD631と同様の更新処理を実行する。
次にステップD696で、前記オペランドのデータにPB演出加算時間(ステップD579で設定された値)を加えた値を、対象のシナリオ管理領域のシナリオ用タイマ領域に設定する。
次いでステップD697で、brkの値を1に設定してリターンする。
【0725】
本ルーチンでは、遊技者のボタン操作(PB操作)により演出時間が変化する場合に可変時間ウェイトするための時間値等を設定する。これにより、ボタン指示があってから早く押す程その後行われる演出が長くなり、有効時間ギリギリで押すと短時間しか演出が行われないという動作が実現される。例えば、図192上側に示すシナリオテーブルおける11行目(//10)の場合、オペコードが可変ウェイトコードであるため本ルーチンが実行され、オペランドの有効時間値が(55)であるため、上記ステップD696でシナリオ用タイマ領域の値として55+PB演出加算時間が設定される。ここで、PB演出加算時間は、PB操作を遊技者に促す演出が行われてから遊技者が早くPB操作すればする程、大きな値となる(前記ステップD579参照)。そのため、遊技者が早くPB操作すればする程、その後行われる演出が長くなる。
【0726】
〔PB待ち処理〕
次に、前述のシナリオ解析処理におけるステップD606で実行されるPB待ち処理の詳細について図147上側により説明する。
このルーチンが開始されると、まずステップD701で、前記ステップD631と同様の更新処理を実行する。
次にステップD702で、前記オペランドのデータを、対象のシナリオ管理領域のPB用タイマ領域に設定する。
次にステップD703で、対象のシナリオ管理領域におけるPB検知フラグ領域のフラグをクリアする。
次いでステップD704で、brkの値を1に設定してリターンする。
【0727】
本ルーチンでは、プッシュボタン演出を開始する時の設定が行われる。例えば、図192上側に示すシナリオテーブルの場合、まず1行目(//0)でモーション9のモーション削除処理が実行され、次いで2行目(//1)でモーション8のモーション登録処理(図176に示すプッシュボタンON/OFF演出のモーションテーブル「MDat0070」に対応するモーションインデックス「70」の設定)が実行された後、次の3行目(//2)のオペコードがPB待ちコードであるため本ルーチンが実行され、オペランドの有効時間値が(90)であるため、上記ステップD702でタイマ領域の値として90が設定され、3秒(=90×1/30)のプッシュボタン演出が開始される。なお、上記ステップD703では、プッシュボタン演出を開始するため、PB(プッシュボタン)が操作されたことを示すPB検知フラグの値をオフ(フラグが立っていない状態)に初期設定している。
【0728】
〔PB判定分岐処理〕
次に、前述のシナリオ解析処理におけるステップD607で実行されるPB判定分岐処理の詳細について図147下側により説明する。
このルーチンが開始されると、まずステップD711で、対象のシナリオ管理領域におけるPB検知フラグ領域のフラグがセットされているか(即ち、PB検知フラグが立てられているか)判定し、セットされている場合にはステップD713に進み、セットされていない場合(PB検知フラグがオフの場合)にはステップD712に進む。
ステップD712に進むと、前記ステップD631と同様の更新処理を実行してリターンする。
ステップD713に進むと、前記ステップD631と同様の更新処理を実行してステップD714に進む。
ステップD714に進むと、ステップD588で準備したオペランドのデータ分だけステップD713のアドレス更新処理を実行完了したか判定し、完了していればリターンし、完了していなければステップD713に戻って処理を繰り返す。
【0729】
本ルーチンは、前述のプッシュボタン演出においてプッシュボタンが押されないまま有効時間を計時するPB用タイマがタイムアップしたか、有効時間内にPBが押されてタイマが強制的に0になった時に実行される処理である。そして、PBが押されないままタイムアップした場合には、ステップD711を経てステップD712に進み、シナリオテーブルの指定行が1行分だけ次に進んでリターンする。また、有効時間内にPBが押された場合には、ステップD711を経てステップD713に進み、オペランドで指定された分だけシナリオテーブルの指定行がジャンプする。
【0730】
例えば、図192上側に示すシナリオテーブルの場合、前述したように3行目までの制御が終了すると、次の4行目(//3)のオペコードがPB判定分岐コードであるため本ルーチンが実行され、オペランドのテーブル飛び数が(3)であるため、PBが有効時間内に押されていてステップD713に進めば、ステップD713が3回実行されるまでステップD714の判定結果はNOとなり、この結果、前記シナリオテーブルにおいて次の指定行は7行目(//6)に飛ぶことになる。そして、7行目に飛ぶと、7行目以降の演出(図192上側の場合、モーション8として表示画面に武将のキャラクタが登場してセリフの音声を出力する演出)が開始される。一方、上述したように本ルーチンが実行された場合でも、PBが有効時間内に押されていなければ、ステップD712が1回実行されるだけでリターンする(本ルーチンが終了する)ので、図192上側における指定行は次の5行目(//4)になり、この5行目によってモーション8のモーション削除処理が実行され、次いで6行目によって後述する終了処理が実行されて、前述したプッシュボタン演出が単に終了する(武将のキャラクタは登場しない)。
【0731】
〔図柄停止処理〕
次に、前述のシナリオ解析処理におけるステップD608で実行される図柄停止処理の詳細について図148により説明する。
このルーチンが開始されると、まずステップD721で、前記ステップD631と同様の更新処理を実行した後、ステップD722に進む。
ステップD722に進むと、前記オペコードの下位ビットのデータが左図柄を指定するものか判定し、左図柄であればステップD727を実行した後にリターンし、左図柄でなければステップD723に進む。ステップD727では、特図停止図柄領域(左)の値(前述のステップD354で設定された値)を現図柄(左)として設定する。
ステップD723に進むと、前記オペコードの下位ビットのデータが右図柄を指定するものか判定し、右図柄であればステップD728を実行した後にリターンし、右図柄でなければステップD724に進む。ステップD728では、特図停止図柄領域(右)の値(前述のステップD354で設定された値)を現図柄(右)として設定する。
【0732】
ステップD724に進むと、前記オペコードの下位ビットのデータが中図柄を指定するものか判定し、中図柄であればステップD729を実行した後にステップD729aに進み、中図柄でなければステップD725に進む。ステップD729では、特図停止図柄領域(中)の値(前述のステップD354で設定された値)を現図柄(中)として設定する。
ステップD729aに進むと、先読み演出実行中か否か判定し、実行中ならばステップF729bに進み、実行中でなければリターンする。なお、先読み演出実行中か否かは、先読み演出実行中フラグがセットされていれば実行中と判定することにより行う。
ステップD729bに進むと、先読み演出回数がゼロか判定し、ゼロならば先読み演出終了なのでステップF729cで先読み演出実行中フラグをクリアした後にリターンし、ゼロでなければ先読み演出がまだ継続されるのでステップF729cを実行しないでリターンする。
【0733】
なお、先読み演出回数は、先読み実行回数のことであり、前述したステップF101で設定され、前述したステップD117で特図変動開始時に−1更新される。
また、先読み演出実行中フラグは、前述したステップF102で設定されるフラグである。特図の変動は本例の場合であると左→右→中の順で停止するので、このような箇所(即ちフローチャート上で中図柄を停止させるタイミングの箇所)に先読み演出実行中フラグをクリアする処理(上記ステップD729a乃至D729c)を入れている。つまり、先読み演出実行中フラグがセットされた先読み演出実行中の状態において、先読み演出回数がゼロになると、中図柄が停止するタイミングで先読み演出実行中フラグをクリアする構成となっている。なお、特図変動の停止順序が違う機種なら、同様に、最後に停止する図柄が停止するタイミングでクリアする処理とすればよい。
また省略しているが、時短や高確率の変動回数終了のチェックなどの処理も、フローチャート上の同じ箇所(ステップD724の判定結果がYESになったときに実行される箇所)にある。
【0734】
ステップD725に進むと、前記オペコードの下位ビットのデータが特図1第4図柄(特図1の第4図柄)を指定するものか判定し、特図1第4図柄であればステップD730を実行した後にリターンし、特図1第4図柄でなければステップD726に進む。ステップD730では、特図停止図柄領域(特図1第4図柄)の値を現図柄(特図1第4図柄)として設定する。
【0735】
ステップD726に進むと、前記オペコードの下位ビットのデータが特図2第4図柄(特図2の第4図柄)を指定するものか判定し、特図2第4図柄図柄であればステップD731を実行した後にリターンし、特図2第4図柄図柄でなければリターンする。ステップD731では、特図停止図柄領域(特図2第4図柄)の値を現図柄(特図2第4図柄)として設定する。
本ルーチンは、飾り特図等の図柄の変動表示を停止する時の処理であり、ステップD727、D728、D729、D730、D731は、その停止図柄を設定する処理である。例えば、図185に示すMS_LZ100というシナリオテーブルにおける6行目が指定行である場合、オペコードが停止図柄setコード(左図柄)であるため、本ルーチンが実行されて上記ステップD722の判定結果がYESとなり、上記ステップD727が実行されて特図の左図柄の停止図柄が設定される。
【0736】
〔図柄逆算差替処理〕
次に、前述のシナリオ解析処理におけるステップD609で実行される図柄逆算差替処理の詳細について図149により説明する。
このルーチンが開始されると、まずステップD741で、前記ステップD631と同様の更新処理を実行する。
次にステップD742で、前記オペコードの下位ビットのデータが左図柄を指定するものか判定し、左図柄であればステップD743、D744を実行した後にステップD745に進み、左図柄でなければステップD748に進む。
ステップD743では、前記オペランドのデータを9で割った余り(オペランドmod9)をコマ差異として設定する。
【0737】
ステップD744では、特図停止図柄領域(左)の値からコマ差異(ステップD743で設定した値)を減算した結果を図柄番号として設定する。
そして、ステップD745に進むと、ステップD744で設定した図柄番号が0未満(マイナスの値)か判定し、0未満ならばステップD746を実行した後にステップD747を実行してリターンし、0未満でない場合にはステップD746を実行しないでステップD747を実行した後にリターンする。
ステップD746では、図柄番号に9を加算した値を新たな図柄番号として設定する。
ステップD747では、図柄番号の値(ステップD744で設定され、マイナスの場合にはステップD746で調整された値)を現図柄(左)として設定する。
【0738】
次にステップD748に進むと、前記オペコードの下位ビットのデータが右図柄を指定するものか判定し、右図柄であればステップD749、D750を実行した後にステップD751に進み、右図柄でなければステップD754に進む。
ステップD749では、前記オペランドのデータを9で割った余り(オペランドmod9)をコマ差異として設定する。
【0739】
ステップD750では、特図停止図柄領域(右)の値からコマ差異(ステップD749で設定した値)を減算した結果を図柄番号として設定する。
そして、ステップD751に進むと、ステップD750で設定した図柄番号が0未満か判定し、0未満ならばステップD752を実行した後にステップD753を実行してリターンし、0未満でない場合にはステップD752を実行しないでステップD753を実行した後にリターンする。
ステップD752では、図柄番号に9を加算した値を新たな図柄番号として設定する。
ステップD753では、図柄番号の値(ステップD750で設定され、マイナスの場合にはステップD752で調整された値)を現図柄(右)として設定する。
【0740】
次にステップD754に進むと、前記オペコードの下位ビットのデータが中図柄を指定するものか判定し、中図柄であればステップD755、D756を実行した後にステップD757に進み、中図柄でなければリターンする。
ステップD755では、前記オペランドのデータを9で割った余り(オペランドmod9)をコマ差異として設定する。
【0741】
ステップD756では、特図停止図柄領域(中)の値からコマ差異(ステップD755で設定した値)を減算した結果を図柄番号として設定する。
そして、ステップD757に進むと、ステップD756で設定した図柄番号が0未満か判定し、0未満ならばステップD758を実行した後にステップD759を実行してリターンし、0未満でない場合にはステップD758を実行しないでステップD759を実行した後にリターンする。
ステップD758では、図柄番号に9を加算した値を新たな図柄番号として設定する。
ステップD759では、図柄番号の値(ステップD756で設定され、マイナスの場合にはステップD758で修正された値)を現図柄(中)として設定する。
【0742】
以上説明した図柄逆算差替処理は、高速変動終了後のスローダウンになる瞬間など、図柄を停止予定の数コマ前の図柄(図柄送り数分だけ前の図柄)に差し替える処理である。
例えば、図185に示すMS_LZ100というシナリオテーブルにおける3行目が指定行である場合、オペコードが左図柄逆算差替コードであるため、本ルーチンが実行されて上記ステップD742の判定結果がYESとなり、上記ステップD743乃至D747が実行されて現図柄(左)が設定される。この場合、オペランドは図柄送り数を意味するデータであり、上記MS_LZ100の3行目ではオペランドが送りコマ数(2)であるので、上記ステップD743では、2÷9という割算の余りである2がコマ差異として設定され、このコマ差異の値を使用して上記ステップD744で図柄番号が設定される。例えば、特図停止図柄領域(左)の値が1ならば、−1(=1−2)が図柄番号として設定され、特図停止図柄領域(左)の値が7ならば、5(=7−2)が図柄番号として設定される。そして、このステップD744で設定された図柄番号がマイナスの値(例えば−1)であると、ステップD746が実行されて図柄番号が一巡した値に変更され(例えば、−1ならば8=−1+9に変更され)、その後ステップD747で図柄番号が現図柄(左)として登録される。
【0743】
なお以上の動作は、右図柄の場合(ステップD748乃至D753)や中図柄の場合(ステップD754乃至D759)も同様である。また、ステップD743等における「9」は各リール(左図柄、中図柄、右図柄)における図柄数を表す。これは、機種によって9ではない場合もあるし、更にリール毎に違う値の場合もある。前述した「停止図柄設定処理」のステップD335等にある「9」も同様に図柄数を表す。
【0744】
〔変動シナリオ切替処理〕
次に、前述のシナリオ解析処理におけるステップD610で実行される変動シナリオ切替処理の詳細について図150により説明する。
このルーチンが開始されると、まずステップD761で、前記オペランドのデータが左図柄シナリオ2nd(左図柄の変動表示の2nd(前半)への切替を指令するもの)であるか判定し、左図柄シナリオ2ndであればステップD762乃至765を順次実行した後にリターンし、左図柄シナリオ2ndでない場合にはステップD767に進む。
ステップD762では、左図柄なのでシナリオレイヤー番号1を準備する。
【0745】
ステップD763では、図柄変動シナリオテーブル領域から左図柄シナリオ2ndテーブル(左図柄用で2nd(前半)用のシナリオテーブル)のアドレスをロードして準備する。なお、図柄変動シナリオテーブル領域には、前述のステップD315で説明したように、各種の図柄変動のシナリオテーブル(1st(序盤)用、2nd(前半)用、3rd(後半)用のシナリオテーブルが、左図柄と右図柄と中図柄についてそれぞれ存在する)のアドレスが保存されており、このステップD763では左図柄用で2nd(前半)用のシナリオテーブルのアドレスが準備される。
ステップD764では、直前のステップD762、D763で準備されたデータに基づいて、前述したシナリオデータ設定処理を実行する。
ステップD765では、準備したシナリオ管理領域のアドレス領域(例えば前記ステップD553等で準備されたシナリオ管理領域のアドレス領域)にシナリオ管理領域1のアドレスを設定してリターンする。これにより、対象のシナリオ管理領域として新たにシナリオ管理領域1が設定されることになる。
【0746】
次に、ステップD767に進むと、前記オペランドのデータが右図柄シナリオ2nd(右図柄の変動表示の2ndへの切替を指令するもの)であるか判定し、右図柄シナリオ2ndであればステップD768乃至771を順次実行した後にリターンし、右図柄シナリオ2ndでない場合にはステップD772に進む。
ステップD768では、右図柄なのでシナリオレイヤー番号2を準備する。
【0747】
ステップD769では、図柄変動シナリオテーブル領域から右図柄シナリオ2ndテーブル(右図柄用で2nd用のシナリオテーブル)のアドレスをロードして準備する。
ステップD770では、直前のステップD768、D769で準備されたデータに基づいて、前述したシナリオデータ設定処理を実行する。
ステップD771では、準備したシナリオ管理領域のアドレス領域にシナリオ管理領域2のアドレスを設定してリターンする。これにより、対象のシナリオ管理領域として新たにシナリオ管理領域2が設定されることになる。
【0748】
次に、ステップD772に進むと、前記オペランドのデータが中図柄シナリオ2nd(中図柄の変動表示の2ndへの切替を指令するもの)であるか判定し、中図柄シナリオ2ndであればステップD773乃至776を順次実行した後にリターンし、中図柄シナリオ2ndでない場合にはステップD777に進む。
ステップD773では、中図柄なのでシナリオレイヤー番号3を準備する。
【0749】
ステップD774では、図柄変動シナリオテーブル領域から中図柄シナリオ2ndテーブル(中図柄用で2nd用のシナリオテーブル)のアドレスをロードして準備する。
ステップD775では、直前のステップD773、D774で準備されたデータに基づいて、前述したシナリオデータ設定処理を実行する。
ステップD776では、準備したシナリオ管理領域のアドレス領域にシナリオ管理領域3のアドレスを設定してリターンする。これにより、対象のシナリオ管理領域として新たにシナリオ管理領域3が設定されることになる。
【0750】
次に、ステップD777に進むと、前記オペランドのデータが左図柄シナリオ3rd(左図柄の変動表示の3rd(後半)への切替を指令するもの)であるか判定し、左図柄シナリオ3rdであればステップD778乃至781を順次実行した後にリターンし、左図柄シナリオ3rdでない場合にはステップD782に進む。
ステップD778では、左図柄なのでシナリオレイヤー番号1を準備する。
【0751】
ステップD779では、図柄変動シナリオテーブル領域から左図柄シナリオ3rdテーブル(左図柄用で3rd(後半)用のシナリオテーブル)のアドレスをロードして準備する。
ステップD780では、直前のステップD778、D779で準備されたデータに基づいて、前述したシナリオデータ設定処理を実行する。
ステップD781では、準備したシナリオ管理領域のアドレス領域にシナリオ管理領域1のアドレスを設定してリターンする。これにより、対象のシナリオ管理領域として新たにシナリオ管理領域1が設定されることになる。
【0752】
次に、ステップD782に進むと、前記オペランドのデータが右図柄シナリオ3rd(右図柄の変動表示の3rdへの切替を指令するもの)であるか判定し、右図柄シナリオ3rdであればステップD783乃至786を順次実行した後にリターンし、右図柄シナリオ3rdでない場合にはステップD787に進む。
ステップD783では、右図柄なのでシナリオレイヤー番号2を準備する。
【0753】
ステップD784では、図柄変動シナリオテーブル領域から右図柄シナリオ3rdテーブル(右図柄用で3rd用のシナリオテーブル)のアドレスをロードして準備する。
ステップD785では、直前のステップD783、D784で準備されたデータに基づいて、前述したシナリオデータ設定処理を実行する。
ステップD786では、準備したシナリオ管理領域のアドレス領域にシナリオ管理領域2のアドレスを設定してリターンする。これにより、対象のシナリオ管理領域として新たにシナリオ管理領域2が設定されることになる。
【0754】
次に、ステップD787に進むと、前記オペランドのデータが中図柄シナリオ3rd(中図柄の変動表示の3rdへの切替を指令するもの)であるか判定し、中図柄シナリオ3rdであればステップD788乃至791を順次実行した後にリターンし、中図柄シナリオ3rdでない場合にはリターンする。
ステップD788では、中図柄なのでシナリオレイヤー番号3を準備する。
【0755】
ステップD789では、図柄変動シナリオテーブル領域から中図柄シナリオ3rdテーブル(中図柄用で3rd用のシナリオテーブル)のアドレスをロードして準備する。
ステップD790では、直前のステップD788、D789で準備されたデータに基づいて、前述したシナリオデータ設定処理を実行する。
ステップD791では、準備したシナリオ管理領域のアドレス領域にシナリオ管理領域3のアドレスを設定してリターンする。これにより、対象のシナリオ管理領域として新たにシナリオ管理領域3が設定されることになる。
【0756】
以上説明した変動シナリオ切替処理によれば、前述した図柄変動の区間のシナリオの切り替え、即ち、1st(序盤)から2nd(前半)へ、或いは2nd(前半)から3rd(後半)へのシナリオの切り替えが行われる。つまり、飾り特図の変動表示演出は、一つの変動が通常「序盤、前半、後半」と3区間に分けられており、本ルーチンによって各区間のシナリオが切り替えられて繋がれてゆく。例えば、図185に示すMS_LZ100というシナリオテーブルにおける最終行の9行目(//8)が指定行である場合、オペコードが変動シナリオ切替コードであり、オペランドが左図柄シナリオ2ndであるため、本ルーチンが実行されて上記ステップD761の判定結果がYESとなり、上記ステップD762乃至D765が実行されて、左図柄用で2nd(前半)用の新たなシナリオテーブル(例えば図185に示すMS_LZ300)が制御対象のシナリオテーブルとして設定され、このシナリオテーブルを実行する設定が行われることになる。
なお、変動の種類によっては、「序盤、前半、後半」の区切りの時間値は異なる。また、3rd(後半)のない変動もある(リーチなし変動など)。
【0757】
〔繰り返し処理〕
次に、前述のシナリオ解析処理におけるステップD611で実行される繰り返し処理の詳細について図151上側により説明する。
このルーチンが開始されると、まずステップD795で、対象のシナリオ管理領域のシナリオ用データテーブル領域内のテーブルアドレスを前レコード(シナリオテーブルの一つ前の行を指定するアドレス)に戻す。
次にステップD796で、ステップD588で取得されたオペランド分だけステップD795を実行して前記テーブルアドレスを前レコードに戻したか判定し、前記オペランド分戻していればリターンし、前記オペランド分戻していない場合にはステップD795に戻って処理を繰り返す。
【0758】
以上説明した繰り返し処理は、シナリオテーブルの所定の段に戻って同一シナリオ内の動作を繰り返す場合に使われる。例えば、図177に示すシナリオテーブルにおける最終行の52行目(//51)が指定行である場合、オペコードが繰返しコードであり、オペランドが戻り数(22)であるため、本ルーチンが実行されて上記ステップD795が22回実行されると上記ステップD796の判定結果がYESとなって本ルーチンが終了し、これにより上記シナリオテーブルの指定行は22行分前の30行目(//29)に戻る。図177に示すシナリオテーブルの30行目は、客待ちデモ演出のムービーを開始する行(オペコードがモーション0登録コードで、オペランドがモーションインデックスNo.(13))であり、この客待ちデモ演出のムービーに続いて客待ちデモ演出の図柄表示が行われるテーブル構成となっている。このため、その後は、客待ちデモ演出としてのムービー表示と図柄表示が繰り返されることになり、1ループ分のデータ(図177に示すシナリオテーブルの30行目から最終行までのデータ)を用意すれば済むことになる。
【0759】
〔終了処理〕
次に、前述のシナリオ解析処理におけるステップD612で実行される終了処理の詳細について図151下側により説明する。
このルーチンが開始されると、ステップD798で、準備したシナリオ管理領域のアドレス領域にNULLを設定してリターンする。これにより、対象のシナリオ管理領域の設定が無くなり、シナリオ終了となる。
例えば、図192上側に示すシナリオテーブルの最終行の15行目(//14)が指定行の場合、オペコードが終了コードであるため、本ルーチンが実行されて上記ステップD798で対象のシナリオ管理領域のアドレス領域がNULLとされて、シナリオ終了となる。このように本ルーチンは、一連のシナリオが全て完了したときに実行される。
【0760】
〔モーション制御処理〕
次に、前述のメイン処理におけるステップD30で実行されるモーション制御処理の詳細について図152により説明する。
このルーチンが開始されると、対象のモーション管理領域の番号Xを0から増やしつつステップD801乃至D818のループ処理を繰り返し実行し、このループ処理の終了条件(全てのモーション管理領域0〜13に対する制御が終了)が成立するとリターンする。即ち、本ルーチン開始時点では、まずステップD801で対象のモーション管理領域の番号を0(X=0)としてステップD802に進んでステップD802以降の処理を実行するが、ステップD817に進むと対象のモーション管理領域の番号を1だけ増やして(即ち、X=X+1として)ステップD818で上記終了条件(X=14)が成立したか判定し、成立していればリターンし、成立していなければステップD801に戻ってステップD802に進む構成となっている。
【0761】
以下、ステップD802以降を、対象のモーション管理領域の番号がX(実際には本例の場合、0〜13のうちの何れか)であるとして説明する。
ステップD802に進むと、本ルーチンで使用する初期化フラグをクリアし、次のステップD803でモーション管理領域Xのアドレス領域からモーション管理領域Xのアドレスをロードし、その後ステップD804に進む。
ステップD804に進むと、ステップD803でロードしたアドレスのデータがNULLか判定し、NULLならば当該モーションX(当該モーション管理領域Xに対応するモーションのレイヤー)については制御不要なのでステップD817に進み、NULLでない場合にはステップD805に進む。
【0762】
ステップD805では、ステップD804でロードしたアドレスに基づいてモーション管理領域Xにおけるモーション用リストテーブル領域のデータ(即ち、今回制御するモーション用リストテーブルとその行を指定するデータ)をロードして準備し、ステップD806に進む。
ステップD806に進むと、ステップD805でロードしたデータにより指定されるモーション用リストテーブルの行(以下、指定行という)における表示フレーム数のデータを読み取り、この表示フレーム数(あるモーションを実行するフレーム数のこと)が0以下ならば異常であるのステップD817に進み、0以下でない場合には正常であるとしてステップD807に進む。なお、例えば図176に示すモーション用リストテーブルにおける1行目が指定行であるとすると、フレーム数(表示フレーム数)は「1」であるので、ステップD806の判定結果はNOになってステップD807に進む。また、例えば同リストテーブルにおける4行目が指定行であるとすると、フレーム数(表示フレーム数)は「216」であるので、ステップD806の判定結果はやはりNOになってステップD807に進む。このように、モーション毎に実行する期間は異なるので、モーション用リストテーブル上に各々対応する表示フレーム数が定義されていて、最低1フレームは表示フレーム数が定義されているはずであり、この表示フレーム数のモーション用リストテーブル上の定義値が0以下になっているようなら異常である。
【0763】
ステップD807に進むと、モーション管理領域Xにおけるフレーム番号の値を読み取り、このフレーム番号の値が0未満か判定し、0未満であればモーションが新たに登録されたとき(モーション登録時)であるとしてステップD808(初期化フラグのセット)を実行した後にステップD809に進み、0未満でない場合にはモーション登録時でないとしてステップD808を実行しないでステップD809に進む。なおフレーム番号は、モーション登録時に、前述したモーションデータ初期化処理1,2におけるステップD657、D662で「−1」に設定されているため、モーション登録時ならばステップD808で初期化フラグがセットされる。なお、この初期化フラグは、前述のステップD802でクリアされ、後述のステップD812で判定されるフラグである。
【0764】
ステップD809に進むと、モーション管理領域Xにおけるフレーム番号の値が最終フレーム数(即ち、前述の表示フレーム数から1を減算した値)以上に到達したか判定し、最終フレーム数未満ならばステップD812に進み、最終フレーム数以上であればステップD810、D811を順次実行した後にステップD812に進む。
ステップD810では、前述したモーションデータ初期化処理1を実行し、ステップD811では、ステップD808と同様に初期化フラグをセットしている。
ここで、フレーム番号(0から始まる)が最終フレーム数に到達したということは、対象のモーションテーブルの制御が最終フレームまで終了したことになる。そこで、ステップD809の判定結果がYES(フレーム番号が最終フレーム数に到達した)の場合には、モーション登録時と同様にモーションデータ初期化処理1と初期化フラグのセットを実行して、同一のモーションテーブルをまた最初から実行する構成となっている。
【0765】
ステップD812に進むと、前記初期化フラグがセットされているか判定し、セットされていれば対象のモーションテーブルを最初から実行するためにステップD813、D814、D815を実行した後にステップD816に進み、前記初期化フラグがセットされていなければ(即ち、クリアされていれば)ステップD819を実行した後にステップD816に進む。
ステップD813、D814、D815では、モーション管理領域Xにおけるフレーム番号、表示数、コマンド位置の値をそれぞれ0に設定する。
ステップD819では、モーション管理領域Xにおけるフレーム番号の値を1だけ増加させる更新を行う。このステップD819に進むのは、前記初期化フラグがセットされていない場合(即ち、対象のモーションテーブルを実行途中である場合)であるので、フレーム番号を順次増加させる必要があるためである。
【0766】
なお、ステップD814で0に設定される表示数の値(制御中のオブジェクトの数を示す値)は、後述するモーションコマンド実行処理の中で(例えば後述するステップD881で)、オブジェクトが追加又は削除される場合に更新(+1又は−1)される。また、ステップD815で0に設定されるコマンド位置の値(モーションテーブルの何行目かを指す値)も、後述するモーションコマンド実行処理の中で(例えば後述するステップD880で)更新される。なお、コマンド位置の値が0であることは、モーションテーブルにおける指定行が1行目であることを示す。また、表示数の値は、制御中のオブジェクトの数であり、画面上に実際に同時に表示されているオブジェクト(図柄や予告用キャラクタなど)の数ではない。
【0767】
次に、ステップD816に進むと、対象のモーションテーブルの制御を実行するためのモーションコマンド実行処理(後述する)を実行し、ステップD817に進む。
ステップD817に進むと、モーション管理領域のアドレス領域自体のアドレスを更新する。即ち、モーション管理領域の番号Xの値を1だけ増やす更新を実行する。これにより、対象のモーション管理領域や対象のモーションのレイヤーが次に切り替わる。例えば、このステップD817の実行前にモーション管理領域1(モーションのレイヤーはモーション1)が制御対象であったならば、実行後にはモーション管理領域2(モーションのレイヤーはモーション2)が制御対象となる。
そして、ステップD817を実行するとステップD818に進み、前述の終了条件(本例の場合、番号X=14になったこと)が成立していればリターンし、成立していなければステップD801に戻ってステップD802から処理を繰り返す。
【0768】
〔モーションコマンド実行処理〕
次に、前述のモーション制御処理におけるステップD816で実行されるモーションコマンド実行処理の詳細について図153及び図154により説明する。
このルーチンが開始されると、まずステップD821で、モーション管理領域X(対象のモーション管理領域)におけるモーション用リストテーブル領域から、モーション用リストテーブル(モーションリストテーブルともいう)のアドレスのデータ(即ち、今回制御するモーション用リストテーブルとその行を指定するデータ)をロードし、ステップD822に進む。
【0769】
ステップD822に進むと、モーション管理領域Xにおけるコマンド位置の値を読み取り、このコマンド位置の値がモーションコマンド数(ステップD821でロードされたアドレスで指定されるモーション用リストテーブルの指定行におけるモーションコマンド数の値)以上であるか判定し、モーションコマンド数以上である場合には全てのコマンド(対象のモーションテーブルの全ての行)を実行済みであるのでリターンし、モーションコマンド数以上でない場合には対象のモーションテーブルを次の1フレーム分実行すべくステップD823に進む。例えば図176に示すモーション用リストテーブルにおける4行目が指定行であるとすると、モーションコマンド数は「1830」であるので、ステップD822では、モーション管理領域Xにおけるコマンド位置の値がこの「1830」以上か判定し、「1830」以上でなければステップD823に進むことになる。また、モーション管理領域Xにおけるコマンド位置の値は、当初は前述のモーションデータ初期化処理1,2におけるステップD658、D663等で0に初期化され、後述するステップD843でモーションテーブルの各行(コマンド)が実行される毎に+1更新されるので、この値が上記「1830」以上になっていれば対象のモーションテーブルの全ての行が実行済みであるため、リターンする構成となっている。
【0770】
ステップD823に進むと、対象のモーション用リストテーブルの指定行(ステップD821でロードされたアドレスで指定されるモーション用リストテーブルの指定行)から、モーションテーブルのアドレス(モーションテーブル名)を取得し、ステップD824に進む。例えば図176に示すモーション用リストテーブルにおける4行目が指定行であるとすると、モーションテーブル名が「Mdat003」であるので、この「Mdat003」をモーションテーブルのアドレスとして取得する(ROM(PROM321)から取り出す)。なお、RAM(RAM311a)のモーション用リストテーブル領域には、モーション用リストテーブルの一番左列(フレーム数の位置)のアドレス(ROM内のテーブルのアドレスを指す)が格納されており、前述のステップD821では、このアドレスをRAMのモーション用リストテーブル領域からロードしている。そして、ステップD823では、ステップD821でロードした上記アドレスの2レコード先のアドレスが示す「モーションテーブル名(アドレス)」の値をROMから読み出している。
なお本例では、モーションテーブルのアドレスとモーションテーブル名が対応しているため、モーションテーブル名を取得すればモーションテーブルのアドレスを取得したことになる。
【0771】
また、モーションテーブルとは、ブロック化された各表示演出を実行するための制御テーブルであることは既述したとおりであるが、ここで詳細を説明する。本願では、前述した図192下側にプッシュボタン予告時のモーションテーブルの一例を示し、また図186に左図柄通常変動開始時のモーションテーブルの一例を示し、その他にも図示しているが、このようなモーションテーブルがROM(本例ではPROM321)に多数登録されている。これら図に示すように、モーションテーブルの各行には、先頭にコマンドのコードが設定され、それに続いてコマンドに対応するパラメータが設定されている。但し、パラメータは無い場合もある。
【0772】
例えば、図186の1行目には、「追加1コード」というコマンドと「キャラクタNo.(図柄「2」)」というパラメータが設定され、同2行目には、「ビヘイビアコード」というコマンドと「オブジェクトインデックス(0)」、「ビヘイビアインデックス(0)」というパラメータが設定され、同7行目には、「移動1コード」というコマンドと「オブジェクトインデックス(0)」、「X座標(0)」、「Y座標(−493)」、「画像幅データ(296)」、「画像高さデータ(490)」というパラメータが設定され、同10行目には、「終了コード」というコマンドのみが設定されている。ここで、オブジェクトインデックスは、各オブジェクトを区別するためにオブジェクトに付けられる番号であり、追加コードで登録される順番に自動的に設定される。例えば図186の1行目で追加登録された図柄「2」はオブジェクトインデックス(0)になり、3行目で追加登録された図柄「1」はオブジェクトインデックス(1)になり、5行目で追加登録された図柄「9」はオブジェクトインデックス(2)になり、というように表示するキャラクタ数(オブジェクト数)に基づいてオブジェクトインデックスの値が増えてゆく。
【0773】
そして、このオブジェクトインデックスの値が小さい程、表示レイヤーの前後関係として画面奥に表示されることになる。つまり、表示位置が重なった場合、オブジェクトインデックスの値が大きいオブジェクトが優先的に画面に表示されることになる。
また、図186の例では3つのキャラクタを登場させているが、同時に使用する他カテゴリ(予告とか)の全てのキャラクタ数合計が128個となるように管理する。つまり、本例のVDP312では同時に128個のキャラクタを表示制御できる。なお、画面外にもキャラクタを配置できるので画面内に128個とは限らない。
また、同図の例は、左図柄の通常変動(前半)のモーションテーブルの最初の4フレーム分のデータである。終了コードまでの区切りが1フレーム分のデータとなっており、例えば1行目から10行目までが最初の1フレーム分のデータである。また、座標データやサイズデータ等の数値は、本実施例の意味となる値を記載しているだけで、小数点以下の情報を含んだデータでもよい。実際は、16bit符号付固定小数(符号ビット、整数部13ビット、小数部2ビットの2の補数)のデータとなっている。
また、前フレームと同じ状態を継続する場合は、終了コードだけを定義すればよい。
【0774】
また、本例におけるモーションテーブルのコマンドの種類と意味は、下記のとおりである。
・「追加コード」;オブジェクトを追加するコマンド。追加するオブジェクトの種類(ビットマップ、動画、単色矩形)に応じて、それぞれ追加1コード、追加2コード、追加3コードがある。
・「挿入コード」;オブジェクトを特定のオブジェクトインデックスとして挿入するコマンド。挿入するオブジェクトの種類(同上)によって、挿入1コード、挿入2コード、挿入3コードがある。この挿入コードの実行により、既に登録されているオブジェクトのオブジェクトインデックスの値はずれる。
・「移動コード」;オブジェクトの表示位置及び表示の大きさを指定するコマンド。指定方式(1点指定、3点指定)により、移動1コード、移動2コードがある。
・「エフェクトコード」…画像に透過性等の加工を施すエフェクトを指令するコマンド。エフェクトタイプを指定するエフェクト1コード、エフェクトパラメータ(例えば、透過度の値(%))を指定するエフェクト2コード、エフェクト色を指定するエフェクト3コードがある。
・「削除コード」;オブジェクトの削除を指令するコマンド。
・「変更コード」;オブジェクトのキャラクタ(図柄や登場人物など)を動きの途中で動きを継続しまたまま差し替える変更を指令するコマンド。
・「デコードコード」;動画データのデコード(復号化)を指令するコマンド。
・「入替コード」;オブジェクトの入替(例えば、オブジェクトインデックス0とオブジェクトインデックス1のキャラクタを入れ替える制御)を指令するコマンド。
・「ビヘイビアコード」;オブジェクトのキャラクタの差替えを指令するコマンド。
・「終了コード」;1フレーム分のデータの終了を示すコマンド。
なお、モーションテーブルのコマンドは、以上説明したものに限定されず、上記以外のコマンドがさらに含まれた態様でもよいし、上記のコマンドのうちの何れかが削除された態様もあり得る。
【0775】
次に、前記ステップD823より以降の処理を説明する。
ステップD823を経るとステップD823に進み、ステップD824とステップD844をループ端とするループ処理を終了条件(コマンド=終了)が成立するまで、繰り返し実行する。即ち、モーション登録直後等においては、前述したステップD658,D663,D815によって対象のモーション管理領域Xのコマンド位置kは0(モーションテーブルの1行目を指定する値)に設定されているが(k=0)、ステップD824乃至D844のループ処理を繰り返す度に、後述するステップD843、D880等でモーション管理領域Xのコマンド位置kの値を1だけ増やし(k=k+1)、ステップD842で上記終了条件(コマンド位置kのコマンドが終了コマンドである)が成立したか判定し、成立していればステップD844を経てリターンし、成立していなければステップD844を経てステップD824に戻ってステップD825に進む構成となっている。
【0776】
以下、ステップD825以降を、対象のモーション管理領域Xのコマンド位置の値がkであるとして説明する。
ステップD825に進むと、対象のモーションテーブル(ステップD823で取得したアドレスのモーションテーブル)におけるコマンド位置kに対応する行(例えば、k=0ならば1行目、k=1ならば2行目、…k=NならばN行目)のコマンドを取得し、次いでこのコマンドについてステップD826乃至D841で順次各コードに該当するか否かのコマンド判定を実行し、何れかのコマンド判定結果がYESになると対応する処理(ステップD851乃至D866の何れか)を実行してステップD844に進む。
【0777】
即ち、ステップD826では追加1コードか判定し、YESならばステップD851でビットマップ追加処理(静止画をオブジェクトとして追加する処理、詳細後述する)を行った後にステップD844に進み、NOならばステップD827に進む。
ステップD827では追加2コードか判定し、YESならばステップD852で動化追加処理(動画をオブジェクトとして追加する処理、詳細後述する)を行った後にステップD844に進み、NOならばステップD828に進む。
ステップD828では追加3コードか判定し、YESならばステップD853で単色矩形追加処理(キャラROM(画像ROM322)のデータを使用しない単色矩形画像をオブジェクトとして追加する処理、詳細は省略する)を行った後にステップD844に進み、NOならばステップD829に進む。
ステップD829では挿入1コードか判定し、YESならばステップD854でビットマップ挿入処理(静止画をオブジェクトとして挿入する処理、詳細は省略する)を行った後にステップD844に進み、NOならばステップD830に進む。
【0778】
ステップD830では挿入2コードか判定し、YESならばステップD855で動作挿入処理(動画をオブジェクトとして挿入する処理、詳細は省略する)を行った後にステップD844に進み、NOならばステップD831に進む。
ステップD831では挿入3コードか判定し、YESならばステップD856で単色矩形挿入処理(前記単色矩形画像をオブジェクトとして挿入する処理、詳細は省略する)を行った後にステップD844に進み、NOならばステップD832に進む。
ステップD832では移動1コードか判定し、YESならばステップD857で1点指定オブジェクト移動処理(1点指定方式でオブジェクトの表示位置や表示の大きさを設定する処理、詳細後述する)を行った後にステップD844に進み、NOならばステップD833に進む。
ステップD833では移動2コードか判定し、YESならばステップD858で3点指定オブジェクト移動処理(3点指定方式でオブジェクトの表示位置や表示の大きさを設定する処理、詳細は省略する)を行った後にステップD844に進み、NOならばステップD834に進む。
【0779】
ステップD834ではエフェクト1コードか判定し、YESならばステップD859でエフェクトタイプ指定処理(後述する)を行った後にステップD844に進み、NOならばステップD835に進む。
ステップD835ではエフェクト2コードか判定し、YESならばステップD860でエフェクトパラメータ指定処理(後述する)を行った後にステップD844に進み、NOならばステップD8に進む。
ステップD836ではエフェクト3コードか判定し、YESならばステップD861でエフェクト色指定処理(エフェクト色を設定する処理、詳細は省略する)を行った後にステップD844に進み、NOならばステップD837に進む。
ステップD837では削除コードか判定し、YESならばステップD862でオブジェクト削除処理(オブジェクトを削除する処理、詳細後述する)を行った後にステップD844に進み、NOならばステップD838に進む。
【0780】
ステップD838では変更コードか判定し、YESならばステップD863でオブジェクト変更処理(オブジェクトを変更する処理、詳細後述する)を行った後にステップD844に進み、NOならばステップD839に進む。
ステップD839ではデコードコードか判定し、YESならばステップD864でオブジェクト動画デコード処理(詳細後述する)を行った後にステップD844に進み、NOならばステップD840に進む。
ステップD840では入替コードか判定し、YESならばステップD865でオブジェクト入替処理(オブジェクトを入れ替える処理、詳細は省略)を行った後にステップD844に進み、NOならばステップD841に進む。
ステップD841ではビヘイビアコードか判定し、YESならばステップD866でビヘイビアインデックス設定処理(詳細後述する)を行った後にステップD844に進み、NOならばステップD842に進む。
【0781】
次に、ステップD842では終了コードか判定し、YESならばステップD843に進み、NOでもステップD843に進む。
ステップD843では、コマンド位置kの値を1だけ増やす更新を実行し、ステップD844に進む。
ステップD844では、ステップD842の判定結果がYESならばリターンし、NOならばステップD824に戻って更新後のコマンド位置kについてステップD826以降を実行する。
【0782】
なお、上記ステップD824乃至D844のループ処理による1フレーム分の動作の具体例を図186の場合で説明すると次のようになる。
即ち、まず最初はコマンド位置k=0であり、追加1コードが設定された1行目が指定行であるので、ステップD826でYESになりステップD851のビットマップ追加処理が実行されて、この1行目にある図柄「2」がオブジェクトインデックス0として登録される。
次はk=1になって、ビヘイビアコードが設定された2行目が指定行であり、パラメータとしてオブジェクトインデックス0、ビヘイビアインデックス0が設定されているので、ステップD841でYESになりステップD866のビヘイビアインデックス設定処理が実行されて、オブジェクトインデックス0(即ち、図柄「2」)に対してビヘイビアインデックス0の設定が行われる。
【0783】
次はk=2になって、追加1コードが設定された3行目が指定行であるので、ステップD826でYESになりステップD851のビットマップ追加処理が実行されて、この3行目にある図柄「1」がオブジェクトインデックス1として登録される。
次はk=3になって、ビヘイビアコードが設定された4行目が指定行であり、パラメータとしてオブジェクトインデックス1、ビヘイビアインデックス0が設定されているので、ステップD841でYESになりステップD866のビヘイビアインデックス設定処理が実行されて、オブジェクトインデックス1(即ち、図柄「1」)に対してビヘイビアインデックス0の設定が行われる。
【0784】
次はk=4になって、追加1コードが設定された5行目が指定行であるので、ステップD826でYESになりステップD851のビットマップ追加処理が実行されて、この5行目にある図柄「9」がオブジェクトインデックス2として登録される。
次はk=5になって、ビヘイビアコードが設定された6行目が指定行であり、パラメータとしてオブジェクトインデックス2、ビヘイビアインデックス0が設定されているので、ステップD841でYESになりステップD866のビヘイビアインデックス設定処理が実行されて、オブジェクトインデックス2(即ち、図柄「9」)に対してビヘイビアインデックス0の設定が行われる。
【0785】
次はk=6になって、移動1コードが設定された7行目が指定行であり、パラメータとしてオブジェクトインデックス0等が設定されているので、ステップD832でYESになりステップD857の1点指定オブジェクト移動処理が実行されて、この7行目にある座標データや表示の大きさのデータに従ったオブジェクトインデックス0の画像(即ち、図柄「2」)の表示設定が行われる。
次はk=7になって、移動1コードが設定された8行目が指定行であり、パラメータとしてオブジェクトインデックス1等が設定されているので、ステップD832でYESになりステップD857の1点指定オブジェクト移動処理が実行されて、この8行目にある座標データや表示の大きさのデータに従ったオブジェクトインデックス1の画像(即ち、図柄「1」)の表示設定が行われる。
【0786】
次はk=8になって、移動1コードが設定された9行目が指定行であり、パラメータとしてオブジェクトインデックス2等が設定されているので、ステップD832でYESになりステップD857の1点指定オブジェクト移動処理が実行されて、この9行目にある座標データや表示の大きさのデータに従ったオブジェクトインデックス2の画像(即ち、図柄「9」)の表示設定が行われる。
次はk=9になって、終了コードが設定された10行目が指定行であるので、ステップD842でYESになりステップD844ではループ処理を終了してリターンする。
こうして、図186において(a)で示す最初の1フレーム分が終了する。なお、同図に(b),(c),(d)で示す3フレーム以降も、各フレーム周期(前述の処理周期;例えば1/30秒)毎に同様に実行される。
【0787】
〔ビットマップ追加処理〕
次に、前述のモーションコマンド実行処理におけるステップD851で実行されるビットマップ追加処理の詳細について図155により説明する。本ルーチンは、既述したように、静止画キャラクタを表示オブジェクトとして追加する処理である。
このルーチンが開始されると、まずステップD871で、モーション管理領域Xにおけるモーション用リストテーブル領域から、モーションリストテーブルのアドレス(即ち、今回制御するモーション用リストテーブルとその行を指定するデータ)をロードし、ステップD872に進む。
ステップD872に進むと、モーション管理領域Xにおける表示数の値が最大表示要素数以上になっているか判定し、最大表示要素数以上ならばオブジェクトの追加ができないのでリターンし、最大表示要素数未満であるならばステップD873乃至D881を順次実行した後にリターンする。ここで、最大表示要素数は、VDP312のハード的限界やVRAM312aの容量(動画を展開する領域等)などを考慮し、一つのモーションで扱える表示数(制御するオブジェクトの数)の限界値であり、例えば18(静止画16+動画2)に設定されている。但し、18は一例にすぎず、これに限定されない。
【0788】
ステップD873では、表示数に対応する表示情報領域のアドレスを設定する。例えば、オブジェクトの追加が初めて行われる場合には、表示数は1であるため、モーション管理領域Xにおける表示数1に対応する表示情報領域のアドレスを設定する。具体例を挙げると、例えばモーション管理領域5(左図柄用のモーション管理領域)の表示情報領域は、1番目の次図柄用と、2番目の現図柄用と、3番目の前図柄用の3個ある。そして今、例えばモーション管理領域X=5(左図柄)であり、対象のモーションテーブルが図186に示すものであり、コマンド位置k=0であるとすると、指定行である1行目のコマンドが追加1コードであるため本ルーチンが実行されるが、この場合、モーション管理領域5の3個の表示情報領域のうちで、表示数1に対応する1番目の次図柄用の表示情報領域に前記1行目のパラメータで指定されるオブジェクト(キャラクタNo.(図柄「2」))のデータを設定することになるため、上記ステップD873では、この1番目の次図柄用の表示情報領域のアドレスが設定される。同様に、k=2(指定行は3行目)であると表示数2に対応する2番目の現図柄用の表示情報領域に3行目のキャラクタNo.(図柄「1」)のデータを設定することになって2番目の現図柄用の表示情報領域のアドレスが設定され、k=4(指定行は5行目)であると表示数3に対応する3番目の前図柄用の表示情報領域に5行目のキャラクタNo.(図柄「9」)のデータを設定することになって3番目の前図柄用の表示情報領域のアドレスが設定される。
【0789】
なお、モーション管理領域に設定(保存)される「表示数」は基本的に表示されるオブジェクトのMAX数(即ち、制御対象として設定されている全オブジェクトの数)を表すが、本ルーチンのような追加処理においてはオブジェクトが増えることになるので「表示数」は+1ずつ変動していく(例えば、後述のステップD881で更新される)が、このような追加処理が行われなくなった時点での表示数が、表示されるオブジェクトのMAX数を示すことになる。
【0790】
次にステップD874では、ステップD873で設定したアドレスで特定される一つの表示情報領域(以下、対象の表示情報領域という)の各データを0クリアする。一旦、対象の表示情報領域の値を全て0にした後、必要な領域に初期値を設定するためである。なお、ここで0クリアするのは、表示数に対応する1つの表示情報領域のみである。
次にステップD875では、対象の表示情報領域におけるビヘイビアインデックスの値として未定義値(例えば「−1」)をセーブする。初期値としてビヘイビア無しの状態に設定するためである。なお本例では、ビヘイビアインデックスの値が0の場合(図186における2,4,6行目のパラメータのようにビヘイビアインデックス0が指定された場合)でも、ビヘイビア(図柄等の差替え)は有りである。
【0791】
次にステップD876では、対象の表示情報領域における表示種別のデータとして静止画情報をセーブする。即ちここでは、追加する当該オブジェクトが静止画であることを示す情報を設定している。
次にステップD877では、対象のモーション用リストテーブルの指定行(ステップD871でロードされたアドレスで指定されるモーション用リストテーブルの指定行)から、モーションテーブルのアドレス(モーションテーブル名)を取得する。これは、前述のステップD823と同様の処理である。
【0792】
次にステップD878では、コマンド位置kに対応する静止画インデックスを取得する。ここで、静止画インデックスとは、キャラROM(画像ROM322)に登録されている静止画キャラクタの登録番号であり、例えば図174に示すような静止画ROMメンバリストテーブルの行を指定するパラメータである。そして今、例えばモーション管理領域X=5(左図柄)であり、対象のモーションテーブルが図186に示すものであり、コマンド位置k=0であるとすると、指定行である1行目で指定されるオブジェクトはキャラクタNo.(図柄「2」)であるため、上記ステップD878では、図174のテーブルにおいて図柄「2」に対応する行を指定する静止画インデックスの値として「1」を取得する。
次にステップD879では、ステップD878で取得した静止画インデックスの値を画像インデックスとしてセーブする。画像インデックスは、表示する対象としての特定のキャラクタ(静止画、動画などの画像)を示す情報であって、後述する演出表示編集処理におけるステップE51等で使用される情報である。
【0793】
次にステップD880では、コマンド位置を次レコードに更新する。即ち、コマンド位置の値kを1だけ増加させる更新を行う。次の周期で、モーションコマンド実行処理を実行したときに、モーションテーブルの次の行を指定行として制御を行うためである。
次にステップD881では、本ルーチンによりオブジェクトが追加されたため、モーション管理領域Xにおける表示数の値を1だけ増加させる更新を行い、その後リターンする。
【0794】
なお、図174に示す静止画ROMメンバリストテーブルの各パラメータの内容は、以下のとおりである。
・画像アドレスオフセット;キャラROM内に当該キャラクタが格納されているアドレスへのオフセット値を示す。
・パレットアドレスオフセット;キャラROM内に当該キャラクタが使用するパレットデータが格納されているアドレスへのオフセット値を示す。本例では、記載しているキャラクタが同一のパレットを使用しているので全て0となっているが、これに限らずキャラクタの必要に応じてパレットを変更してもよい。違うパレットを使用している箇所は異なるオフセット値となる。
・画像の幅、高さ;当該キャラクタの元画像のサイズを表す。例えば単位はピクセル。この例では、通常変動時の図柄とプッシュボタンのキャラだけなので同じサイズばかりとなっているが、実際はキャラクタ毎に様々な値となる。また、通常図柄の中においても例えば図柄に描かれている人物の大きさが多少違ったりして見た目のサイズが異なる可能性があるが、内部制御で扱いやすくするために透明部分でキャラクタの大きさを調整し、同一カテゴリのキャラであれば同一サイズとなるように設定する。
【0795】
・VRAM上の幅;当該キャラクタをVRAMに展開した際の幅を指す。この例は圧縮タイプが「可逆圧縮32bit画像」しか使用していないので元画像と同じ幅になっている。非可逆圧縮にしたり、カラーパレットのbit数を落としたりするとサイズが小さくなる。
・画像の圧縮タイプ;キャラROMへ格納している各キャラクタの圧縮タイプを示す。この圧縮タイプとしては、例えば以下のタイプ0〜6がある。これら以外のタイプがあってもよい。
0: 32bitフルカラー画像圧縮なし
1: 8bitフルカラー画像圧縮なし
2: 4bitフルカラー画像圧縮なし
3: 可逆圧縮32bitフルカラー画像
4: 可逆圧縮8bitフルカラー画像
5: 可逆圧縮4bitフルカラー画像
6: 非可逆圧縮画像
・画像の圧縮後のサイズ;画像データ(キャラクタのデータ)の圧縮後の容量を示す。キャラROM322からVRAM312a(606,607)へデータ転送する際のパラメータ等として使用される。
なお、以上説明した静止画ROMメンバリストテーブルのカテゴリ設定は一例であり、
これ以外のパラメータを設定してもよい。
【0796】
〔動画追加処理〕
次に、前述のモーションコマンド実行処理におけるステップD852で実行される動画追加処理の詳細について図156により説明する。本ルーチンは、既述したように、動画キャラクタを表示オブジェクトとして追加する処理である。
このルーチンが開始されると、まずステップD891で、前記ステップD871と同様に、モーションリストテーブルのアドレスをロードし、ステップD892に進む。
ステップD892に進むと、前記ステップD872と同様に、モーション管理領域Xにおける表示数の値が最大表示要素数以上になっているか判定し、最大表示要素数以上ならばリターンし、最大表示要素数未満であるならばステップD893乃至D897を順次実行した後にステップD898に進む。
【0797】
ステップD893では、前記ステップD873と同様に、表示数に対応する表示情報領域のアドレスを設定する。
ステップD894では、前記ステップD874と同様に、ステップD893で設定したアドレスで特定される一つの表示情報領域(対象の表示情報領域)の各データを0クリアする。
ステップD895では、前記ステップD875と同様に、対象の表示情報領域におけるビヘイビアインデックスの値として未定義値(例えば「−1」)をセーブする。
ステップD896では、前記ステップD877と同様に、対象のモーション用リストテーブルの指定行(ステップD891でロードされたアドレスで指定されるモーション用リストテーブルの指定行)から、モーションテーブルのアドレスを取得する。
【0798】
ステップD897では、コマンド位置kに対応する動画インデックスを取得する。ここで、動画インデックスとは、キャラROM(画像ROM322)に登録されている動画キャラクタの登録番号であり、例えば図175に示すような動画ROMメンバリストテーブルの行を指定するパラメータである。そして、対象のモーションテーブルの指定行にあるオブジェクトのパラメータ(追加2コードの次の列に設定されているデータ)が例えばアニメ図柄「1」であったとすると、上記ステップD897では、図175のテーブルにおいてアニメ図柄「1」に対応する行を指定する動画インデックスの値として「0」を取得する。
【0799】
次にステップD898では、ステップD897で取得した動画インデックスの値に対応する動画ROMメンバリストテーブルの指定行におけるエンコードタイプ(後述する)のデータを読み取り、このデータに基づいて追加しようとする動画のエンコードタイプがIピクチャ動画か判定し、Iピクチャ動画ならばステップD899に進み、Iピクチャ動画でなければステップD904に進む。図175の場合、エンコードタイプのデータが「0」であるとIピクチャ動画であるので、このデータが「0」のときはステップD899に進み、「0」以外のときはステップD904に進むことになる。なお、Iピクチャとは、フレーム間予測を行わないで単独でデコードできる画像のフレームデータを意味し、Iピクチャ動画とはIピクチャのみで構成された動画を意味する。
【0800】
次にステップD899に進むと、ステップD899乃至D901を順次実行した後にステップD902に進む。
ステップD899では、対象の表示情報領域におけるIピクチャ用フレームカウント数(Iピクチャのみの動画時のフレームカウント)のデータとして、初期値である「−1」を設定する。なお、初期値として「−1」を設定すれば、Iピクチャ用フレームカウント数は「0」からスタートすることになる。
ステップD900では、対象の表示情報領域における表示種別のデータとしてIピクチャ動画情報をセーブする。即ちここでは、追加する当該オブジェクトがIピクチャ動画であることを示す情報を設定している。
ステップD901では、ステップD897で取得した動画インデックスの値を画像インデックスとしてセーブする。
【0801】
一方、ステップD904に進むと、ステップD904、D905を順次実行した後にステップD906に進む。
ステップD904では、VDP312に対して動画をループする指示を出すために、ループ再生フラグをセットする。なお、ループしない設定も可能である。
ステップD905では、動画データをデコードするRAM311aの記憶領域を確保する動画デコード領域確保処理を実行する。
そしてステップD906