JP7341818B2 - 遊技機 - Google Patents

遊技機 Download PDF

Info

Publication number
JP7341818B2
JP7341818B2 JP2019172983A JP2019172983A JP7341818B2 JP 7341818 B2 JP7341818 B2 JP 7341818B2 JP 2019172983 A JP2019172983 A JP 2019172983A JP 2019172983 A JP2019172983 A JP 2019172983A JP 7341818 B2 JP7341818 B2 JP 7341818B2
Authority
JP
Japan
Prior art keywords
area
register
program
display
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019172983A
Other languages
English (en)
Other versions
JP2021049020A (ja
Inventor
譲 矢次
Original Assignee
株式会社藤商事
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社藤商事 filed Critical 株式会社藤商事
Priority to JP2019172983A priority Critical patent/JP7341818B2/ja
Publication of JP2021049020A publication Critical patent/JP2021049020A/ja
Priority to JP2023140195A priority patent/JP2023158039A/ja
Application granted granted Critical
Publication of JP7341818B2 publication Critical patent/JP7341818B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E60/00Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
    • Y02E60/10Energy storage using batteries

Landscapes

  • Pinball Game Machines (AREA)

Description

本発明は遊技機に関するものであり、特には、遊技機が実行するプログラムの詳細に関する。
例えばパチンコ遊技機としての弾球遊技機やスロットマシンとしての回胴式遊技機等の遊技機においては、遊技進行に係る制御を行う制御手段としてCPU(Central Processing Unit)等の演算処理装置が設けられ、該演算処理装置がプログラムに記述された命令に従った処理を行うことで遊技機の各種動作が実現される。
なお、関連する従来技術については下記特許文献1を挙げることができる。
特開2019-141675号公報
ここで、遊技機においては、制御手段の動作安定性を高め、遊技機の動作不具合を抑制することが遊技の公平性を高める上で重要とされる。
そこで、本発明では、遊技機における制御の安定性向上を図ることを目的とする。
本発明に係る遊技機は、それぞれが複数の汎用レジスタを含んで構成される第一レジスタ群、及び第二レジスタ群と、第一割込み管理レジスタ、及び第二割込み管理レジスタと、を備え、前記第一割込み管理レジスタと前記第二割込み管理レジスタに許可値を書き込む第一命令と、前記第一割込み管理レジスタと前記第二割込み管理レジスタに禁止値を書き込む第二命令と、領域内プログラムから領域外プログラムを呼び出す際に使用される第三命令と、前記領域外プログラムから前記領域内プログラムに復帰する際に使用される第四命令と、があり、前記第三命令は、前記領域外プログラムを呼び出すよりも前に、前記第一割込み管理レジスタに前記禁止値を書き込み、使用するレジスタ群を前記第一レジスタ群から前記第二レジスタ群に切り替えるための処理を実行可能であり、前記第四命令は、前記領域内プログラムに復帰するよりも前に、前記第二割込み管理レジスタの値を前記第一割込み管理レジスタに上書きし、使用するレジスタ群を前記第二レジスタ群から前記第一レジスタ群に切り替えるための処理を実行可能であり、前記領域内プログラムにおいて、前記第二命令を実行した後、前記第一命令を実行するよりも前に、前記第三命令を実行するものである。
領域外プログラムを実行するときは割込み禁止状態とすることを要する。そのため、第三命令の実行前に第一命令を実行してしまうと、割込み禁止状態と割込み許可状態が頻繁に切り替わってしまうことになる。これに対し、上記のように第二命令を実行した後、第一命令を実行するよりも前に、第三命令を実行するものとすれば、割込み禁止状態が維持されたまま領域外プログラムの呼び出しと領域内プログラムへの復帰が行われるため、割込み制御状態の切り替え回数が抑えられる。
また、上記した本発明に係る遊技機においては、前記第一レジスタ群は、スタックポインタを記憶する第一スタックポインタを有し、前記第二レジスタ群は、スタックポインタを記憶する第二スタックポインタを有し、前記第一スタックポインタに、前記領域内プログラムで使用するスタックメモリのアドレス情報を記憶させ、前記第二スタックポインタに、前記領域外プログラムで使用するスタックメモリのアドレス情報を記憶させ、前記領域内プログラムにおいて、前記第三命令を実行して前記領域外プログラムを呼び出す際に、前記領域外プログラムの第一アドレスを指定して呼び出す場合と、第二アドレスを指定して呼び出す場合とがあり、前記領域外プログラムにおいて、前記第一アドレスが呼び出された場合と、前記第二アドレスが呼び出された場合の何れにおいても、前記第二スタックポインタに共通のスタックメモリのアドレス情報を記憶させるための第五命令を実行する構成とすることが可能である。
これにより、領域外プログラムで用いるスタックポインタの値を、領域外プログラムが呼び出されるごとにセットし直すことが可能とされる。
また、上記した本発明に係る遊技機においては、前記第一レジスタ群は、スタックポインタを記憶する第一スタックポインタを有し、前記第二レジスタ群は、スタックポインタを記憶する第二スタックポインタを有し、前記第一スタックポインタに、前記領域内プログラムで使用するスタックメモリのアドレス情報を記憶させ、前記第二スタックポインタに、前記領域外プログラムで使用するスタックメモリのアドレス情報を記憶させ、前記領域内プログラムにおいて、前記第三命令を実行して前記領域外プログラムを呼び出す際に、前記領域外プログラムの第一アドレスを指定して呼び出す場合と、その後のタイミングにて、第二アドレスを指定して呼び出す場合とがあり、前記領域外プログラムにおいて、前記第一アドレスが呼び出された場合にのみ、前記第二スタックポインタに所定のスタックメモリのアドレス情報を記憶させるための第六命令を実行する構成とすることが可能である。
領域外プログラムの処理開始時に第二スタックポインタに対してセットされているべきスタックメモリのアドレス情報は固定のアドレス情報であるため、領域外プログラムとして、第一アドレスのプログラムの実行後に第二アドレスのプログラムが実行される場合には、第二スタックポインタに対するアドレス情報の記憶処理は、先に実行される方のプログラムである第一アドレスのプログラムにおいてのみ行われれば足る。
本発明によれば、遊技機における制御の安定性向上を図ることができる。
本発明に係る実施形態としての遊技機の外観を示す正面側の斜視図である。 実施形態としての遊技機の遊技盤の構成を示す図である。 実施形態としての遊技機の制御構成を示すブロック図である。 実施形態における先読み予告演出の例についての説明図である。 実施形態の主制御側メイン処理を示したフローチャートである。 図5中の初期設定処理を示したフローチャートである。 実施形態の電源異常チェック処理を示したフローチャートである。 設定変更処理、RAMクリア処理、設定確認処理、バックアップ復帰処理への移行にあたっての操作面での各判定条件と、Wレジスタの値との対応関係を示した図である。 図5中のメインループ処理を示したフローチャートである。 図5中の設定変更処理を示したフローチャートである。 図10中の出力管理処理を示したフローチャートである。 7セグデコードテーブルの例を示した図である。 設定値の表示器におけるセグメント構成とセグメントの表示パターンとの関係を例示した図である。 図5中のRAMクリア処理を示したフローチャートである。 図5中の設定確認処理を示したフローチャートである。 設定値オフセット変換テーブルの例を示した図である。 図5中のメインループ前処理を示したフローチャートである。 実施形態の主制御側タイマ割込み処理を示したフローチャートである。 図18中の電源チェック・バックアップ処理を示したフローチャートである。 図18中の設定異常チェック処理を示したフローチャートである。 主制御部のメモリに設定された領域についての説明図である。 各領域に定められた規制についての説明図である。 先行例におけるレジスタ構成を示した図である。 主制御側メイン処理(図5)における主にメインループ処理(図9)に対応した部分のプログラムを例示した図である。 性能表示モニタ集計除算処理(S304)に係るプログラムを例示した図である。 実施形態におけるレジスタ構成を示した図である。 実施形態における割込み制御フラグの更新ルールについての説明図である。 実施形態としての処理移行手法を適用した場合の領域内プログラムを例示した図である。 実施形態としての処理移行手法を適用した場合の領域外プログラムを例示した図である。 実施形態としての処理移行手法を適用した場合の領域内プログラムの他の例を示した図である。 実施形態としての処理移行手法を適用した場合の領域外プログラムの他の例を示した図である。 実施形態としての処理移行手法を適用した場合の領域内プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域外プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域内プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域外プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域内プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域外プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域内プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域外プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域内プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域外プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域内プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域外プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域内プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域外プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域内プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域外プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域内プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域外プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域内プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域外プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域内プログラムの別例を示した図である。 実施形態としての処理移行手法を適用した場合の領域外プログラムの別例を示した図である。 レジスタバンクの切り替え命令に係る領域内プログラムの変形例を示した図である。 レジスタバンクの切り替え命令に係る領域外プログラムの変形例を示した図である。 レジスタバンクの切り替え命令に係る領域内プログラムの変形例を示した図である。 レジスタバンクの切り替え命令に係る領域外プログラムの変形例を示した図である。 レジスタバンクの切り替え命令に係る領域内プログラムの変形例を示した図である。 レジスタバンクの切り替え命令に係る領域外プログラムの変形例を示した図である。 レジスタバンクの切り替え命令に係る領域内プログラムの変形例を示した図である。である。 レジスタバンクの切り替え命令に係る領域外プログラムの変形例を示した図である。 「CALL」及び「RET」命令を用いた場合の領域内プログラムの例を示した図である。 「CALL」及び「RET」命令を用いた場合の領域外プログラムの例を示した図である。 実施形態における主制御部のメモリマップを示した図である。
以下、添付図面を参照し、本発明に係る実施形態を次の順序で説明する。

<1.遊技機の構造>
<2.遊技機の制御構成>
[2-1.主制御部]
(設定値の変更操作について)
(性能表示について)
(演出制御コマンド)
[2-2.演出制御部]
<3.動作の概要説明>
[3-1.図柄変動表示ゲーム]
(特別図柄変動表示ゲーム)
(装飾図柄変動表示ゲーム)
(普通図柄変動表示ゲーム)
(保留について)
[3-2.遊技状態]
[3-3.当りについて]
[3-4.演出について]
(演出モード)
(予告演出)
(演出手段)
<4.主制御部の処理>
[4-1.主制御側メイン処理]
(初期設定処理)
(初期設定後の処理)
(メインループ処理)
(設定変更処理)
(RAMクリア処理)
(設定確認処理)
(メインループ前処理)
(設定値表示用データテーブルと設定値変換テーブルの利点)
[4-2.主制御側タイマ割込み処理]
(電源チェック・バックアップ処理)
(エラー管理及び遊技進行のための処理等)
<5.領域内処理と領域外処理との間の処理移行について>
[5-1.使用領域、使用外領域について]
[5-2.先行例における処理移行手法]
[5-3.実施形態としての処理移行手法]
[5-4.プログラムの別例]
[5-5.プログラムの変形例]
[5-6.その他変形例]
<6.Qレジスタ及びUレジスタについて>
<7.実施形態のまとめ>
<1.遊技機の構造>

図1及び図2を参照して、本発明に係る実施形態としてのパチンコ遊技機1の構造について説明する。図1はパチンコ遊技機1の外観を示す正面側の斜視図を、図2はパチンコ遊技機1が有する遊技盤3の正面側を示した図である。
図1に示すパチンコ遊技機1(以下「遊技機1」と略称する場合がある)は、木製の外枠4の前面に額縁状の前枠2を開閉可能に取り付け、前枠2の裏面に取り付けた遊技盤収納フレーム(図示せず)内に遊技盤3(図2参照)を装着し、この遊技盤3の表面に形成した遊技領域3aを前枠2の開口部に臨ませた構成を有する。この遊技領域3aの前側には、透明ガラスを支持したガラス扉6が設けられている。また遊技盤3の背面側には、遊技動作を制御するための各種制御基板(図3参照)が配設されている。
ガラス扉6の前側には扉ロック解除用のキーシリンダ(図示せず)が設けられており、このキーシリンダにキーを差し込んで一方側に操作すれば前枠2に対するガラス扉6のロック状態を、他方側に操作すれば外枠4に対する前枠2のロック状態をそれぞれ解除して前側に開放できるようになっている。
ガラス扉6の下側には、ヒンジ(図示せず)により前枠2に開閉自在に枢支された前面操作パネル7が配置されている。前面操作パネル7には、上受け皿ユニット8が設けられ、この上受け皿ユニット8には、排出された遊技球を貯留する上受け皿9が形成されている。
また上受け皿ユニット8には、上受け皿9に貯留された遊技球を遊技機1の下方に抜くための球抜きボタン14と、遊技球貸出装置(図示せず)に対して遊技球の払い出しを要求するための球貸しボタン11と、遊技球貸出装置に挿入した有価価値媒体の返却を要求するためのカード返却ボタン12とが設けられている。また上受け皿ユニット8には、遊技者が操作可能に構成された演出ボタン13(操作手段)が設けられている。この演出ボタン13は、所定の入力受付期間中に内蔵ランプ(ボタンLED75)が点灯されて操作可能(入力受付可能)となり、その内蔵ランプ点灯中に所定の操作(押下、連打、長押し等)をすることにより演出に変化をもたらすことが可能となっている。
また、図1では図示を省略しているが、前面操作パネル7には、遊技者やホールスタッフ等の使用者が各種の項目の選択や方向指示等を行うための十字キー15aや、選択項目の決定を指示するための決定ボタン15b等の操作子が設けられている。
また前面操作パネル7の右端部側には、発射装置32(図3参照)を作動させるための発射操作ハンドル15が設けられている。
また前枠2の上部の両側と発射操作ハンドル15の上側とには、音響により音演出効果(効果音)を発揮するスピーカ46が設けられている。また、ガラス扉6の適所には、光の装飾により光演出効果を発揮する装飾ランプ45(例えばフルカラーLEDによる光演出用LED等)が複数設けられている。この装飾ランプ45としてのフルカラーLED(光演出用LED)は、パチンコ遊技機の周囲、つまりガラス扉6の前枠周縁に周方向に複数個設けられている。
図2を参照して、遊技盤3の構成について説明する。図示の遊技盤3には、発射された遊技球を案内する球誘導レール5が盤面区画部材として環状に装着されており、この球誘導レール5取り囲まれた略円形状の領域が遊技領域3a、四隅は非遊技領域となっている。
この遊技領域3aの略中央部には、たとえば3つ(左、中、右)の表示エリア(図柄変動表示領域)において、独立して数字やキャラクタや記号などによる複数種類の装飾図柄(たとえば、左図柄(左表示エリア対応)、中図柄(中表示エリア対応)、右図柄(右表示エリア対応))の変動表示動作(変動表示および停止表示)が可能である液晶表示装置(LCD)36が設けられている。以降の説明においては、左図柄、中図柄、右図柄に変動表示される複数種類の装飾図柄をそれぞれ「図柄群」と記載することもある。即ち、例えば、左表示エリアに停止表示された図柄は、左図柄を構成する図柄群のうちの一つとされる。
この液晶表示装置36は、後述する演出制御部24の制御の下、装飾図柄の変動表示動作の他、種々の演出を画像により表示する。
また遊技領域3a内には、液晶表示装置36の表示面の周りを遠巻きに囲繞する形でセンター飾り48が設けられている。センター飾り48は、遊技盤3の前面側に沿って設けられ、周囲の遊技球から液晶表示装置36の表示面を保護すると共に、遊技球の打ち出しの強さ又はストローク長により、遊技球の流路を左右に振り分けることを可能とする流路振分手段として働く。本実施形態では、センター飾り48の存在によって遊技領域3a内の上部両側(左側と右側)に遊技球の流路が形成されるように、センター飾り48は遊技領域3aのほぼ中央部に配置されている。発射装置32により遊技領域3aの上部側に打ち込まれた遊技球は、鎧枠部48bの上部側で左右に振り分けられ、センター飾り48の左側の左流下経路3bと右側の右流下経路3cとの何れかを流下する。
また遊技盤3の右上縁付近(右上隅)の非遊技領域は各種機能表示部となっており、7セグメント表示器(ドット付)を上始動口34(第1の特別図柄用)と下始動口35(第2の特別図柄用)に対応させて横に並べて構成される特別図柄表示装置38a(第1の特別図柄表示手段)と特別図柄表示装置38b(第2の特別図柄表示手段)とが設けられている。特別図柄表示装置38a、38bでは、7セグメント表示器により表現される「特別図柄」の変動表示動作による特別図柄変動表示ゲームが実行されるようになっている。そして上記の液晶表示装置36では、特別図柄表示装置38a、38bによる特別図柄の変動表示と時間的に同調して、画像による装飾図柄を変動表示して、種々の予告演出(演出画像)と共に装飾図柄変動表示ゲームが実行されるようになっている(これらの図柄変動表示ゲームについての詳細は追って説明する)。
また各種機能表示部には、特別図柄表示装置38a、38bの隣に、7セグメント表示器(ドット付)からなる複合表示装置(保留複合表示用LED表示器)38cが配設されている。複合と称したのは、特別図柄1、2、普通図柄の作動保留球数の表示、変動時間短縮機能作動中(時短中)および高確率状態中(高確中)の状態報知という、5つの表示機能を有する保留・時短・高確複合表示装置(以下単に「複合表示装置」と称する)であるからである。
また各種機能表示部には、複合表示装置38cの隣りに、複数個(この実施形態では2個)のLEDを配置してなる普通図柄表示装置39a(普通図柄表示手段)が設けられている。この普通図柄表示装置39aでは、2個のLEDにより表現される普通図柄の変動表示動作により普通図柄変動表示ゲームが実行されるようになっている。例えば、変動表示動作として、LEDによる普通図柄がシーソー的に交互に点灯と消灯を繰り返し、何れかの側が点灯した状態で停止することで、普通図柄変動表示ゲームの当否が判明するようになっている。また、この普通図柄表示装置39aに隣接して3個のLED(第1~第3ラウンド表示LED)を配置してなるラウンド数表示装置39bが設けられている。このラウンド数表示装置39bは、3つのLEDの点灯・消灯状態の組合せにより、大当りに係る規定ラウンド数(最大ラウンド数)を報知する。
センター飾り48の下方には、上始動口34(第1の特別図柄始動口:第1の始動手段)と、下始動口35(第2の特別図柄始動口:第2の始動手段)を備える普通変動入賞装置41とが上下に設けられ、それぞれの内部には、遊技球の通過を検出する検出センサ34a、35a(上始動口センサ34a、下始動口センサ35a:図3参照)が形成されている。
第1の特別図柄始動口である上始動口34は、特別図柄表示装置38aにおける第1の特別図柄(以下、第1の特別図柄を「特別図柄1」と称し、場合により「特図1」と略称する)の変動表示動作の始動条件に係る入賞口であり、始動口開閉手段(始動口を開放又は拡大可能にする手段)を有しない入賞率固定型の入賞装置として構成されている。本実施形態では、遊技領域3a内の遊技球落下方向変換部材(例えば、遊技くぎ(図示せず)、風車44、センター飾り48など)の作用により、上始動口34へは、左流下経路3bを流下してきた遊技球については入球(入賞)容易な構成であるのに対し、右流下経路3cを流下してきた遊技球については入球困難または入球不可能な構成となっている。
普通変動入賞装置41は、始動口開閉手段により始動口の遊技球の入賞率を変動可能な入賞率変動型の入賞装置として構成されている。本実施形態では、始動口開閉手段として、第2の特別図柄始動口である下始動口35を、開放または拡大可能にする左右一対の可動翼片(可動部材)47を備える、いわゆる「電動チューリップ型」入賞装置として構成されている。
普通変動入賞装置41の下始動口35は、特別図柄表示装置38bにおける第2の特別図柄(以下、第2の特別図柄を「特別図柄2」と称し、場合により「特図2」と略称する)の変動表示動作の始動条件に係る入賞口であり、この下始動口35の入賞領域は、可動翼片47の作動状態(作動または非作動)に応じて、入賞を容易とする開状態(入賞容易状態)と、その開状態よりも入賞を困難にし、又は入賞を不可能にする閉状態(入賞困難状態)とに変換される。本実施形態では、可動翼片47が非作動の場合、下始動口35への入賞が不可能とする閉状態(入賞不可能状態)を保持している。
また普通変動入賞装置41の両側には、一般入賞口43が左側に3つ、右側に1つ、計4つ配設されており、それぞれの内部には、遊技球の通過を検出する一般入賞口センサ43a(図3参照)が形成されている。また遊技盤の領域内には遊技球の流下を妨害しない位置に、視覚的演出効果を奏する可動体役物(図示せず)が配設されている。
また普通変動入賞装置41の右斜め上方、つまり右流下経路3cの中間部より上部側には、遊技球が通過可能な通過ゲート(特定通過領域)からなる普通図柄始動口37(第3の始動手段)が設けられている。この普通図柄始動口37は、普通図柄表示装置39aにおける普通図柄の変動表示動作に係る入賞口であり、その内部には、通過する遊技球を検出する普通図柄始動口センサ37a(図3参照)が形成されている。なお本実施形態では、普通図柄始動口37は右流下経路3c側にのみに形成され、左流下経路3b側には形成されていない。しかし本発明はこれに限らず、左流下経路3bのみに形成してもよいし、両流下経路にそれぞれ形成してもよい。
右流下経路3c内の普通図柄始動口37から普通変動入賞装置41へかけての経路途中には、突没式の開放扉52bにより大入賞口50を開放または拡大可能に構成された特別変動入賞装置52(特別電動役物)が設けられており、その内部には大入賞口50に入球した遊技球を検出する大入賞口センサ52a(図3参照)が形成されている。
大入賞口50の周囲は、遊技盤3の表面から膨出した膨出部(装飾部材)55となっており、この膨出部55の上辺55aが右流下経路3cの下流案内部を形作っている。そして開放扉52bにより大入賞口50が閉鎖状態(大入賞口閉状態)であれば、この膨出部55の上辺55aと連続する面を形成することによって、右流下経路3cの下流案内部(上辺55a)の一部を形作るようになっている。また右流下経路3cの下流域には、膨出部55の上辺55aの上方の領域、正確には大入賞口50の上方の遊技領域において、遊技球の流下方向にほぼ平行に流路修正板51dが突設されており、流下する遊技球を大入賞口50の方向に寄せる働きをするようになっている。
大入賞口50への遊技球の入球過程は次のようになる。
センター飾り48の上面と球誘導レール5との間の遊動領域を通過した遊技球は、遊技盤3より突出していて遊技球のガイドとして機能する膨出部55の頂面(上辺)55a上に沿って流下して来る。そして、その遊技球が遊技盤3面から突出している流路修正板51dの右端に接触し、これにより、当該遊技球の流下方向は大入賞口50の方向(下方向)に修正される。このとき、突没式の開放扉52bにより大入賞口50が蓋をされている状態(大入賞口閉状態)であれば、この上を遊技球が転動して、さらに図示しない所定配列の遊技くぎにより、チューリップ式の普通変動入賞装置41(下始動口35)の方向に導かれる。このとき、下始動口35が入賞可能状態(始動口開状態)であれば、下始動口35に遊技球が入賞し得る。他方、開放扉52bが遊技盤面内に後退していて大入賞口50が開いている状態(大入賞口開状態)であれば、遊技球が大入賞口50内に導かれる。
なお本実施形態の遊技機1では、遊技者が特別変動入賞装置52側に発射位置を狙い定めた場合(遊技球が右流下経路3cを通過するように狙いを定めた場合)、上始動口34側には遊技球が誘導され難い、又は誘導されない構成となっている。従って「大入賞口閉状態」であれば、普通変動入賞装置41の可動翼片47が作動しない限り、各始動口34、35への入賞が困難又は不可能とされるようになっている。可動翼片47は、後述の電サポ有り状態を伴う遊技状態になると、通常状態よりも有利な開閉パターンで動作するようになっている。
本実施形態の場合、遊技者がどのような打ち方をすれば有利な状況となるかについては、遊技状態に応じて変化する。具体的には、後述の「電サポ無し状態」を伴う遊技状態であれば、遊技球が左流下経路3bを通過するように狙いを定める「左打ち」が有利とされ、後述の「電サポ有り状態」を伴う遊技状態であれば、遊技球が右流下経路3cを通過するように狙いを定める「右打ち」が有利とされる。
本実施形態の遊技機1においては、遊技領域3aに設けられた各種入賞口のうち、普通図柄始動口37以外の入賞口への入賞があった場合には、各入賞口別に約束づけられた入賞球1個当りの賞球数(例えば、上始動口34または下始動口35は3個、大入賞口50は13個、一般入賞口43は10個)が遊技球払出装置19(図3参照)から払い出されるようになっている。上記の各入賞口に入賞しなかった遊技球は、アウト口49を介して遊技領域3aから排出される。
ここで「入賞」とは、入賞口がその内部に遊技球を取り込んだり、或いは入賞口が遊技球を内部に取り込む構造ではなく通過型のゲートからなる入賞口(例えば、普通図柄始動口37)である場合はそのゲートを遊技球が通過したりすることを言い、実際には入賞口ごとに形成された各入賞検出スイッチにより遊技球が検出された場合、その入賞口に「入賞」が発生したものとして扱われる。この入賞に係る遊技球を「入賞球」とも称する。なお、入賞口に遊技球が入口すれば、その遊技球は入賞検出スイッチにより検出されることとなるため、本明細書中では特に断りのない限り、入賞検出スイッチに遊技球が検出されたか否かによらず、入賞口に遊技球が入口した場合を含めて「入賞」と称する場合がある。
<2.遊技機の制御構成>

図3のブロック図を参照して、遊技機1の遊技動作制御を実現するための構成(制御構成)について説明する。
本実施形態の遊技機1は、遊技動作全般に係る制御(遊技動作制御)を統括的に司る主制御基板(主制御手段)20(以下「主制御部20」と称する)と、主制御部20から演出制御コマンドを受けて、演出手段による演出の実行制御(現出制御)を統括的に司る演出制御基板(演出制御手段)24(以下「演出制御部24」と称する)と、賞球の払い出し制御を行う払出制御基板(払出制御手段)29と、外部電源(図示せず)から遊技機1に必要な電源を生成し供給する電源基板(電源制御手段(図示せず))と、を有して構成される。
なお、図3において、各部への電源供給ルートは省略している。
[2-1.主制御部]

主制御部20は、CPU(Central Processing Unit)20a(主制御CPU)を内蔵したマイクロプロセッサを搭載すると共に、遊技動作制御手順を記述した制御プログラムの他、遊技動作制御に必要な種々のデータを格納するROM(Read Only Memory)20b(主制御ROM)と、ワーク領域やバッファメモリとして機能するRAM(Random Access Memory)20c(主制御RAM)とを搭載し、全体としてマイクロコンピュータを構成している。
また図示はしていないが、主制御部20は、周期的割込みや一定周期のパルス出力作成機能(ビットレートジェネレータ)や時間計測の機能を実現するためのCTC(Counter Timer Circuit)、及びCPU20aに割込み信号を付与するタイマ割込み等の割込許可/割込禁止機能を発揮する割込みコントローラ回路、及び電源投入時や遮断時や電源異常などを検知してシステムリセット信号を出力してCPU20aをリセット可能なリセット回路、及び制御プログラムの動作異常を監視するウォッチドッグタイマ(WDT)回路、及び予め設定したアドレス範囲内でプログラムが正しく実行されているか否かを監視する指定エリア外走行禁止(IAT)回路、及びハードウェア的に一定範囲の乱数を生成するためのカウンタ回路等も備えている。
上記カウンタ回路は、乱数を生成する乱数生成回路と、その乱数生成回路から所定のタイミングで乱数値をサンプリングするサンプリング回路とを含んで構成され、全体として16ビットカウンタとして働く。CPU20aは、処理状態に応じて上記サンプリング回路に指示を送ることで、上記乱数生成回路が示している数値を内部抽選用乱数値(大当り判定用乱数(乱数の大きさ:65536))として取得し、その乱数値を大当り抽選に利用する。なお、内部抽選用乱数は、当り狙い打ち等のゴト行為を防ぐために、適宜なソフトウェア処理で生成しているソフト乱数値と、ハード乱数値とを加算したものを取得している。
また、CPU20aは、各種の値を格納するための複数のレジスタを備えている。なお、実施形態におけるCPU20aが備えるレジスタの詳細については後述する。
主制御部20には、上始動口34への入賞(入球)を検出する上始動口センサ34aと、下始動口35への入賞を検出する下始動口センサ35aと、普通図柄始動口37の通過を検出する普通図柄始動口センサ37aと、大入賞口50への入賞を検出する大入賞口センサ52aと、一般入賞口43への入賞を検出する一般入賞口センサ43aと、アウト口49から排出される遊技球(アウト球)を検出するOUT監視スイッチ49aが接続され、主制御部20はこれらから出力される検出信号を受信可能とされている。主制御部20は、各センサからの検出信号に基づき、何れの入賞口に遊技球が入球したのかを把握可能とされる。
また主制御部20には、下始動口35の可動翼片47を開閉制御するための普通電動役物ソレノイド41cと、大入賞口50の開放扉52bを開閉制御するための大入賞口ソレノイド52cとが接続され、主制御部20はこれらを制御するための制御信号を送信可能となっている。
さらに主制御部20には、特別図柄表示装置38aと特別図柄表示装置38bとが接続され、主制御部20は、特別図柄1、2を表示制御するための制御信号を送信可能とされている。さらにまた、主制御部20には、普通図柄表示装置39aが接続され、普通図柄を表示制御するための制御信号を送信可能とされている。
また、主制御部20には、複合表示装置38c、ラウンド数表示装置39bが接続され、主制御部20は、複合表示装置38cに表示される各種情報を表示制御するための制御信号や、ラウンド数表示装置39bに表示される大当りによる規定ラウンド数を表示制御するための制御信号を送信可能とされている。
さらに、主制御部20には、枠用外部集中端子基板21が接続され、主制御部20は、枠用外部集中端子基板21を介し、遊技機外部に設けられたホールコンピュータHCに対し所定の遊技情報(例えば、大当り情報、賞球数情報、図柄変動実行情報等)を送信可能とされている。
なお、ホールコンピュータHCは、主制御部20からの遊技情報を監視して、パチンコホールの遊技機の稼働状況を統括的に管理するための情報処理装置(コンピュータ装置)である。
さらにまた、主制御部20には、払出制御基板(払出制御部)29が接続され、賞球の払い出しの必要がある場合には、払出制御基板29に対し、払い出しに関する制御コマンド(賞球数を指定する払出制御コマンド)を送信可能とされている。
払出制御基板29には、発射装置32を制御する発射制御基板(発射制御部)28と、遊技球の払い出しを行う遊技球払出装置(遊技球払出手段)19とが接続されている。この払出制御基板29の主な役割は、主制御部20からの払出制御コマンドの受信、払出制御コマンドに基づく遊技球払出装置19の賞球払い出し制御、主制御部20への状態信号の送信などである。
遊技球払出装置19には、遊技球の供給不足を検出する補給切れ検出センサ19aや払い出される遊技球(賞球)を検出する球計数センサ19bが設けられており、払出制御基板29は、これらの各検出信号を受信可能とされている。また遊技球払出装置19には、遊技球を払い出すための球払出機構部(図示せず)を駆動する払出モータ19cが設けられており、払出制御基板29は、払出モータ19cを制御するための制御信号を送信可能とされている。
さらに、払出制御基板29には、上受け皿9が遊技球で満杯状態を検出する満杯検出センサ60(本実施形態では、上受け皿9に貯留される遊技球の貯留状態を検出する検出センサ)と、前扉開放センサ61(本実施形態では、少なくとも前枠2の開放状態を検出する検出センサ)が接続されている。
払出制御基板29は、満杯検出センサ60、前扉開放センサ61、補給切れ検出センサ19a、球計数センサ19bからの検出信号に基づいて、主制御部20に対して、各種の状態信号を送信可能となっている。この状態信号には、満杯状態を示す球詰り信号、少なくとも前枠2が開放されていることを示す扉開放信号、遊技球払出装置19からの遊技球の供給不足を示す補給切れ信号、賞球の払出不足や球計数センサ19bに異常が発生したこと示す計数エラー信号、払い出し動作が完了したことを示す払出完了信号などが含まれ、様々な状態信号を送信可能な構成となっている。主制御部20は、これら状態信号に基づいて、前枠2の開放状態(扉開放エラー)や、遊技球払出装置19の払出動作が正常か否か(補給切れエラー)や、上受け皿9の満杯状態(球詰りエラー)等を監視する。
さらにまた、払出制御基板29には発射制御基板28が接続され、発射制御基板28に対し発射を許可する許可信号を送信可能とされている。発射制御基板28は、払出制御基板29からの許可信号が出力されていることに基づき、発射装置32に設けられた発射ソレノイド(図示せず)への通電を制御し、発射操作ハンドル15の操作による遊技球の発射動作を実現している。具体的には、払出制御基板29から発射許可信号が出力されていること(発射許可信号ON状態)、発射操作ハンドル15に設けられたタッチセンサ(図示せず)により遊技者がハンドルに触れていることを検出されていること、発射操作ハンドル15に設けられた発射停止スイッチ(図示せず)が操作されていないことを条件に、遊技球の発射動作が許容される。従って、発射許可信号が出力されていない場合には(発射許可信号OFF状態)、発射操作ハンドル15を操作しても発射動作は実行されず、遊技球が発射されることはない。また、遊技球の打ち出しの強さは、発射操作ハンドル15の操作量に応じて変化可能となっている。
なお、払出制御基板29が上記球詰りエラーを検出すると、主制御部20に球詰り信号を送信すると共に発射制御基板28に対する発射許可信号の出力を停止し(発射許可信号OFF)、上受け皿9の満杯状態が解消されるまで打ち出し動作を停止する制御を行うようになっている。
また、払出制御基板29は、発射制御基板28に対する発射の許可信号の出力を、主制御部20より発射許可が指示されたことを条件に行う。
ここで、主制御部20は、設定キースイッチ94、及びRAMクリアスイッチ98が接続されており、これらスイッチからの検出信号を受信可能とされている。
RAMクリアスイッチ98は、RAM20cの所定領域を初期化することを指示入力するための例えば押しボタン式のスイッチとされる。
設定キースイッチ94は、電源投入時にホールスタッフが所持する設定鍵を挿入してON/OFF操作することにより設定変更モード(ON操作時)に切り替えるためのキースイッチとされる。
ここで、設定変更モードは、設定値Veを変更可能なモードである。設定値Veは、遊技者に有利な遊技状態に当選させるか否かの当選確率についての段階を表す値である。
RAMクリアスイッチ98は、前枠2が開放された状態で操作可能に設けられたRAMクリアボタンの操作に応じてON/OFFされる。また、設定キースイッチ98は、上記した設定鍵を挿抜可能とされたキーシリンダが対応して設けられており、該キーシリンダに挿入された設定鍵が順方向に回動されることでON、該ONの状態から逆方向に回動されることでOFFとなる。キーシリンダは、前枠2が開放された状態で設定鍵の挿入による操作が可能となるように設けられている。なお、キーシリンダは、設定鍵が挿入されることで操作可能とされた操作子として機能する。
本例では、設定値Veの変更操作には、上記のRAMクリアボタンが兼用される。具体的に、RAMクリアボタンは、設定値Veを順送りするための操作子としても機能する。
RAMクリアスイッチ98、及び設定キースイッチ94は、遊技機1内部の適所に設けられている。例えば、主制御基板20上に配置される。
また主制御部20は、設定・性能表示器97が接続されている。
設定・性能表示器97は、例えば7セグメント表示器を有して構成され、設定値Veと性能情報(後述する)の表示が可能とされた表示手段として機能する。設定・性能表示器97は、例えば主制御部(主制御基板)20上の視認し易い位置に搭載されている。
主制御部20は、設定・性能表示器97に対して設定値Veや性能情報を表示させるための制御信号を送信可能とされている。
ここで、設定値Veは、主として、少なくとも大当り(後述の条件装置が作動することとなる当り種別)の抽選確率(当選確率)を段階別(例えば、設定1~6の6段階)に規定するもので、設定値Veが高くなるほど、当選確率が高くなり(設定1が最低の当選確率、以降、設定の値の昇順に当選確率が高くなる)、遊技者に有利に作用するようになっている。換言すれば、設定値Veが高くなるほど、所謂「機械割(出玉率、PAYOUT率)」が高くなり、遊技者に有利に作用するようになっている。
このように、設定値Veとは、大当り当選確率や機械割などを規定する値であり、遊技者に作用する利益状態などの特定事象の発生し易さに関連する等級についての値を意味し、本実施形態では、各設定値Veに応じて遊技に係る有利度が規定されることになる。
本例では、規則上使用可能とされる設定値Veの段階(有利度の段階)が6段階であることを前提とする。具体的に、設定値Veの規則上使用可能な範囲(以下「使用可能範囲Re」と表記する)は、「1」~「6」の範囲であることを前提としている。
この前提の下で、本例のパチンコ遊技機1は、規則上使用可能な設定値Veのうち、一部の設定値Veのみを使用する。具体的に、本例のパチンコ遊技機1は、使用可能範囲Re内の設定値Veである「1」~「6」のうち、例えば「1」「2」「6」の3値のみを使用する。換言すれば、当選確率についての段階を規則上の最大段階である6段階とするのではなく、3段階に制限した仕様とされている。
以下、パチンコ遊技機1において実際に使用される設定値Veの範囲、具体的には使用可能範囲Re内の設定値Veのうちで実際に使用される設定値Veの範囲(上記例では「1」「2」「6」の範囲)のことを「使用範囲Ru」と表記する。
設定値Veは、専ら、ホール(遊技店)の営業戦略に基づき、ホール店員等のホールスタッフによって設定が行われる。なお、大当りが複数種類ある場合、何れの大当りの当選確率を設定値Veに応じて変化させるか、対象となる大当りの種類は、適宜定めることができる。例えば、大当り1~3という3種類の大当りがあるとした場合、設定値Veが相対的に高い方が、大当り1~3のすべての当選確率を高くしてもよいし、大当り1~3の合算当選確率を高くしてもよい。また一部の大当りの当選確率を高くしてもよい。例えば、大当り1~2の当選確率だけを高くし、大当り3については全設定値Veで一定の当選確率にしてもよい。
(設定値の変更操作について)

設定値Veを変更するためには、本例では、遊技機1の電源がオフとされ前枠2が解放された状態において、設定キースイッチ94をON操作(設定変更モード側に操作)し且つRAMクリアボタンを押圧した状態(RAMクリアスイッチ98がONの状態)で遊技機1への電源を投入する。すると、現在の設定値Veが設定・性能表示器97に表示され、設定値Ve(本例では1、2、6)の変更操作が可能な「設定変更モード」に移行される。
本例では、設定変更モードに移行するか否かの判定は、後述の主制御側メイン処理において行われる(図5のステップS104を参照)。設定変更モードに移行するための上記の操作条件が満足されているときは、これに応じて設定変更のための処理が実行される。
設定変更モードへの移行後において、設定値Veの変更操作子として機能するRAMクリアボタンがON操作されると、設定・性能表示器97の現在の表示値が「1→2→6→1→2→6→・・・」のように使用範囲Ru内で循環式に切り替えられる。そして希望する設定値Veとなったところで、設定キースイッチ94がOFFされると、設定値Veが確定され、確定した設定値Veの情報がRAM20cの所定領域に格納(記憶)される。
また、設定キースイッチ94がOFFされると、設定変更モードが終了され、設定・性能表示器97の表示がクリアされる。
設定変更モードが終了すると、遊技進行を許容する状態に移行される。
(性能表示について)

主制御部20は、設定・性能表示器97に対し所定の性能情報を表示させるための制御信号を送信可能とされている。
性能情報とは、パチンコホールや関係各庁が確認したい情報であり、遊技機1に対する過剰賞球等の不正賞球ゴトの有無や遊技機1本来の出玉性能などに関する情報などがその代表例である。従って、性能情報自体は、予告演出等とは異なり、遊技者が遊技に興じる際に、その遊技進行自体には直接的に関係の無い情報となる。
このため設定・性能表示器97は、遊技機1内部、例えば、主制御部(主制御基板)20、払出制御基板29、発射制御基板28、上記中継基板、演出制御部(演出制御基板(液晶制御基板を含む))24上や、基板ケース(基板を保護する保護カバー)など、前枠2が開放状態とされたときに表示情報を視認可能となる位置に設けられている。
ここで、性能情報には、具体的に次のような情報を採用することができる。
(1)特定状態中において入賞により払い出された総払出個数(特定中総賞球数:α個)を、当該特定状態中おいてアウト口49から排出された総アウト球数(特定中アウト個数:β個)で除した値(α/β)に基づく情報(特定比率情報)を、性能情報として採用することができる。
上記「総払出個数」とは、入賞口(上始動口34、下始動口35、一般入賞口43、大入賞口50)に入賞した際に払い出された遊技球(賞球)の合計値である。本実施形態の場合、上始動口34または下始動口35は3個、大入賞口50は13個、一般入賞口43は10個である。
また、特定状態として、何れの状態を採用するかについては、如何なる状態下の性能情報を把握したいかに応じて適宜定めることができる。本実施形態の場合であれば、通常状態、潜確状態、時短状態、確変状態、大当り遊技中のうち、何れの状態も採用することができる。また、複数種類の状態を計測対象としてもよい。例えば、通常状態と確変状態や、当り遊技中を除く全ての遊技状態等であり、その計測対象とする種類は適宜定めることができる。
また、特定状態中の期間として、大当り抽選確率が低確率状態又は高確率状態の何れかの期間を採用してもよい。
また、1又は複数の特定の入賞口を計測対象から除外したものを総払出個数としてもよい(特定入賞口除外総払出個数)。例えば、各入賞口のうち、大入賞口50を計測対象から除外したものを、総払出個数としてもよい。
(2)その他、総払出個数、特定入賞口除外総払出個数、総アウト球数の何れかだけを計測し、その計測結果を性能情報としてもよい。
本実施形態では、通常状態中の総払出個数(通常時払出個数)と、通常状態中の総アウト球数(通常時アウト個数)とをリアルタイムで計測し、通常時払出個数を通常時アウト個数で除した値に百を乗じた値(通常時払出個数÷通常時アウト個数×100で算出される値)を性能情報(以下「通常時比率情報」と称する)として表示する。なお、この際の表示値は、小数点第1位を四捨五入した値とする。
従って、通常時払出個数、通常時アウト個数、通常時比率情報の各データが、RAM20cの該当領域(特定中総賞球数格納領域、特定中アウト個数格納領域、特定比率情報格納領域)にそれぞれ格納(記憶)されるようになっている。但し、単に永続的に計測して性能情報を表示するのではなく、総アウト球数が所定の規定個数(例えば、60000個)に達した場合、一旦、計測を終了する。この規定個数とは、通常状態の総アウト球数ではなく、全遊技状態中(当り遊技中を含む)の総アウト球数(以下「全状態アウト個数」と称する)である。この全状態アウト個数もリアルタイムに計測され、RAM20cの該当領域(全状態アウト個数格納領域)に格納される。以下、説明の便宜のために、特定中総賞球数格納領域、特定中アウト個数格納領域、特定比率情報格納領域、全状態アウト個数格納領域を「計測情報格納領域」と略称する。
そして、終了時点の通常時比率情報をRAM20cの所定領域(性能表示格納領域)に格納し(今回の通常時比率情報を記憶)、その後、計測情報格納領域(通常時払出個数、通常時アウト個数および全状態アウト個数)をクリアしてから、再度、計測を開始する(通常時払出個数、通常時アウト個数、通常時比率情報および全状態アウト球数の計測を開始する)。そして、設定・性能表示器97には、前回の通常時比率情報(計測履歴情報)と、現在計測中の通常時比率情報とが表示されるようになっている。なお、前回の情報に限らず、前々回やその前(3回前)などの履歴を表示可能に構成してもよく、何回前までの情報を表示するかについては適宜定めることができる。
ここで、本例の場合、設定・性能表示器97には設定値Veと性能情報とが択一的に表示される。具体的に、本例では、設定変更や設定確認は電源投入に伴う起動時にのみ行われるため、電源投入に伴う起動後、設定変更モードや設定確認を行うモードに移行したことに応じて設定・性能表示器97に設定値Veが表示され、設定変更や設定確認が完了した後において、性能情報の表示が行われる。
なお、設定値Veと性能情報を共通の表示器により表示する構成に限定されず、別々の表示器により表示する構成を採ることもできる。その場合、設定値Veと性能情報の表示が並行して行われてもよい。
(演出制御コマンド)

主制御部20は、処理状態に応じて、特別図柄変動表示ゲームに関する情報やエラーに関する情報等を含む種々の演出制御コマンドを、演出制御部24に対して送信可能とされている。但し、ゴト行為等の不正を防止するために、主制御部20は演出制御部24に対して信号を送信するのみで、演出制御部24からの信号を受信不可能な片方向通信の構成となっている。
ここで、演出制御コマンドは、1バイト長のモード(MODE)と、同じく1バイト長のイベント(EVENT)からなる2バイト構成により機能を定義し、MODEとEVENTの区別を行うために、MODEのBit7はON、EVENTのBit7をOFFとしている。これらの情報を有効なものとして送信する場合、モード(MODE)及びイベント(EVENT)の各々に対応してストローブ信号が出力される。すなわち、CPU20a(主制御CPU)は、送信すべきコマンドがある場合、演出制御部24にコマンドを送信するためのモード(MODE)情報の設定及び出力を行い、この設定から所定時間経過後に1回目のストローブ信号の送信を行う。さらに、このストローブ信号の送信から所定時間経過後にイベント(EVENT)情報の設定及び出力を行い、この設定から所定時間経過後に2回目のストローブ信号の送信を行う。ストローブ信号は、CPU24a(演出制御CPU)が確実にコマンドを受信可能とする所定期間、CPU20aによりアクティブ状態に制御される。
[2-2.演出制御部]

演出制御部24は、CPU24a(演出制御CPU)を内蔵したマイクロプロセッサを搭載すると共に、演出制御処理に要する演出データを格納したROM24b(演出制御ROM)と、ワーク領域やバッファメモリとして機能するRAM24c(演出制御RAM)とを搭載したマイクロコンピュータを中心に構成され、その他、音響制御部(音源IC)、RTC(Real Time Clock)機能部、カウンタ回路、割込みコントローラ回路、リセット回路、WDT回路などが設けられ、演出動作全般を制御する。
演出制御CPU24aは演出制御プログラム及び主制御部50から受信した演出制御コマンドに基づいて、各種演出動作のための演算処理や各演出手段の制御を行う。演出手段とは、本実施形態のパチンコ遊技機1の場合、液晶表示装置36(主液晶表示装置36M、副液晶表示装置36S)、光表示装置45a、音響発生装置46a、及び図示を省略した可動体役物となる。
演出制御ROM24bは、演出制御CPU24aによる演出動作の制御プログラムや、演出動作制御に必要な種々のデータを記憶する。
演出制御RAM24cは、演出制御CPU24aが各種演算処理に使用するワークエリアや、テーブルデータ領域、各種入出力データや処理データのバッファ領域等として用いられる。
なお、演算制御部24は、1チップマイクロコンピュータとその周辺回路が搭載されている構成とすることができるが、演出制御部24の構成は各種考えられる。例えばマイクロコンピュータに加えて、各部とのインターフェース回路、演出のための抽選用乱数を生成する乱数生成回路、各種の時間計数のためのCTC、ウォッチドッグタイマ(WDT)回路、演出制御CPU24aに割込み信号を与える割込コントローラ回路などを備える場合もある。
この演出制御部24の主な役割は、主制御部20からの演出制御コマンドの受信、演出制御コマンドに基づく演出の選択決定、液晶表示装置36の表示制御(表示データ供給)、音響発生装置46aの音声出力制御、光表示装置45a(LED)の発光制御、可動体役物の動作制御(可動体役物モータ80cの駆動制御)などとなる。
この演出制御部24は、液晶表示装置36に対する制御装置としての機能も備えているため、演出制御部24には、いわゆるVDP(Video Display Processor)、画像ROM、VRAM(Video RAM)としての機能も備えられ、また演出制御CPU24aは、液晶制御部としても機能する。
VDPは、画像展開処理や画像の描画などの映像出力処理全般の制御を行う機能を指している。
画像ROMとは、VDPが画像展開処理を行う画像データ(演出画像データ)が格納されているメモリを指す。
VRAMは、VDPが展開した画像データを一時的に記憶する画像メモリ領域である。
演出制御部24は、これらの構成により、主制御部20からのコマンドに基づいて各種の画像データを生成し、主液晶表示装置36M、及び副液晶表示装置36Sに出力する。これによって主液晶表示装置36M及び副液晶表示装置36Sにおいて各種の演出画像が表示される。
また演出制御部24は、スピーカ46を含む音響発生装置46aに対する音響制御部(音コントローラ:音源IC)を有しており、音響制御部が出力する音響信号はアンプ部46dで増幅されてスピーカ46に供給される。
また、演出制御部24には、装飾ランプ45や各種LEDを含む光表示装置45aに対する光表示制御部として機能するランプドライバ部45dと、可動体(図示せず)を動作させる可動体役物モータ80cに対する駆動制御部として機能するモータドライバ部80d(モータ駆動回路)とが接続されている。演出制御部24は、これらランプドライバ部45dやモータドライバ部80dに指示を行って光表示装置45aによる光表示動作や可動体役物モータ80cの動作を制御する。
演出制御部24にはまた、可動体役物の動作を監視するための原点スイッチ81や位置検出センサ82が接続されている。
原点スイッチ81は、例えばフォトインターラプタ等で構成され、可動体役物モータ80cが原点位置にあるか否かを検出する。原点位置は、例えば可動体が図2の盤面に通常は表出しない位置などとされる。演出制御部24は、この原点スイッチ81の検出情報に基づいて可動体役物モータ80cが原点位置にあるか否かを判定可能とされている。
また、演出制御部24は、位置検出センサ82からの検出情報に基づき、可動体役物の現在の動作位置(例えば、原点位置からの移動量)を監視しながらその動作態様を制御する。さらに演出制御部24は、位置検出センサ82からの検出情報に基づき、可動体役物の動作の不具合を監視し、不具合が生じれば、これをエラーとして検出する。
また演出制御部24には、図中に操作部17として示す演出ボタン13や十字キー15a、決定ボタン15bのスイッチ、つまり演出ボタン13、十字キー15a、決定ボタン15bの操作検出スイッチが接続され、演出制御部24は、演出ボタン13、十字キー15a、決定ボタン15bからの操作検出信号をそれぞれ受信可能とされている。
さらに、演出制御部24には、図1に示した操作ハンドル15が遊技者等の使用者により触れられているか否かを検出するためのハンドルセンサ83(タッチセンサ)が設けられている。演出制御部24はこのハンドルセンサ83の検出情報に基づいて操作ハンドル15が使用者によりタッチされているか否かを判定可能とされる。
演出制御部24は、主制御部20から送られてくる演出制御コマンドに基づき、予め用意された複数種類の演出パターンの中から抽選により、又は一意に演出パターンを選択(決定)し、必要なタイミングで各種の演出手段を制御して、目的の演出を現出させる。これにより、演出パターンに対応する液晶表示装置36による演出画像の表示、スピーカ46からの音の再生、装飾ランプ45やLEDの点灯点滅駆動が実現され、種々の演出パターン(装飾図柄変動表示動作や予告演出など)が時系列的に展開されることにより、広義の意味での「演出シナリオ」が実現される。
ここで、演出制御コマンドについて、演出制御部24(CPU24a)は、主制御部20(CPU20a)が送信する上述したストローブ信号の入力に基づき割込み処理を発生させてその受信・解析を行う。具体的に、CPU24aは、上述したストローブ信号の入力に基づいてコマンド受信割込処理用の制御プログラムを実行し、これにより実現される割込み処理において、演出制御コマンドを取得し、コマンド内容の解析を行う。
この際、CPU24aは、ストローブ信号の入力に基づいて割込みが発生した場合には、他の割込みに基づく割込み処理(定期的に実行されるタイマ割込処理)の実行中であっても、当該処理に割り込んでコマンド受信割込処理を行い、他の割込みが同時に発生してもコマンド受信割込処理を優先的に行うようになっている。
<3.動作の概要説明>
[3-1.図柄変動表示ゲーム]

次に、上記のような制御構成(図3)により実現される遊技機1の遊技動作の概要について説明する。
先ずは、図柄変動表示ゲームについて説明する。
(特別図柄変動表示ゲーム)

本実施形態の遊技機1では、所定の始動条件、具体的には、遊技球が上始動口34又は下始動口35に遊技球が入球(入賞)したことに基づき、主制御部20において乱数抽選による「大当り抽選」が行われる。主制御部20は、その抽選結果に基づき、特別図柄表示装置38a、38bに特別図柄1、特別図柄2を変動表示して特別図柄変動表示ゲームを開始させ、所定時間経過後に、その結果を特別図柄表示装置に導出表示して、これにより特別図柄変動表示ゲームを終了させる。
ここで本実施形態では、上始動口34への入賞に基づく大当り抽選と、下始動口35への入賞に基づく大当り抽選とは別個独立して行われる。このため、上始動口34に関する大当り抽選結果は特別図柄表示装置38a側で、下始動口35に関する大当り抽選結果は特別図柄表示装置38b側で導出されるようになっている。具体的には、特別図柄表示装置38a側においては、上始動口34に遊技球が入球したことを条件に、特別図柄1を変動表示して第1の特別図柄変動表示ゲームが開始され、他方、特別図柄表示装置38b側においては、下始動口35に遊技球が入球したことを条件に、特別図柄2を変動表示して第2の特別図柄変動表示ゲームが開始されるようになっている。そして、特別図柄表示装置38a、又は特別図柄表示装置38bにおける特別図柄変動表示ゲームが開始されると、所定の変動表示時間経過後に、大当り抽選結果が「大当り」の場合には所定の「大当り」態様で、それ以外の場合には所定の「はずれ」態様で、変動表示中の特別図柄が停止表示され、これによりゲーム結果(大当り抽選結果)が導出されるようになっている。
なお本明細書中では、説明の便宜上、特別図柄表示装置38a側の第1の特別図柄変動表示ゲームを「特別図柄変動表示ゲーム1」と称し、特別図柄表示装置38b側の第2の特別図柄変動表示ゲームを「特別図柄変動表示ゲーム2」と称する。また特に必要のない限り、「特別図柄1」と「特別図柄2」とを単に「特別図柄」と称し(場合により「特図」と略称する)、また「特別図柄変動表示ゲーム1」と「特別図柄変動表示ゲーム2」とを単に「特別図柄変動表示ゲーム」と称する。
(装飾図柄変動表示ゲーム)

また、上述の特別図柄変動表示ゲームが開始されると、これに伴って、主液晶表示装置36Mに装飾図柄(演出的な遊技図柄)を変動表示して装飾図柄変動表示ゲームが開始され、これに付随して種々の演出が展開される。そして特別図柄変動表示ゲームが終了すると、装飾図柄変動表示ゲームも終了し、特別図柄表示装置には大当り抽選結果を示す所定の特別図柄が、そして主液晶表示装置36Mには当該大当り抽選結果を反映した装飾図柄が導出表示されるようになっている。すなわち、装飾図柄の変動表示動作を含む演出的な装飾図柄変動表示ゲームにより、特別図柄変動表示ゲームの結果を反映表示するようになっている。
従って、例えば特別図柄変動表示ゲームの結果が「大当り」である場合(大当り抽選結果が「大当り」である場合)、装飾図柄変動表示ゲームではその結果を反映させた演出が展開される。そして特別図柄表示装置において、特別図柄が大当りを示す表示態様(例えば、7セグが「7」の表示状態)で停止表示されると、主液晶表示装置36Mには、「左」「中」「右」の各表示エリアにおいて、装飾図柄が「大当り」を反映させた表示態様(例えば「左」「中」「右」の各表示エリアにおいて、3個の装飾図柄が「7」「7」「7」の表示状態)で停止表示される。
この「大当り」となった場合、具体的には、特別図柄変動表示ゲームが終了して、これに伴い装飾図柄変動表示ゲームが終了し、その結果として「大当り」の図柄態様が導出表示された後、特別変動入賞装置52の大入賞口ソレノイド52cが作動して開放扉52bが所定のパターンで開閉動作を行い、これにより大入賞口50が開閉され、通常遊技状態よりも遊技者に有利な特別遊技状態(大当り遊技)が発生する。この大当り遊技では、開放扉52bにより、大入賞口の開放時間が所定時間(最大開放時間:例えば、29.8秒)経過するまでか、又は大入賞口に入賞した遊技球数(大入賞口50への入賞球)が所定個数(最大入賞数:役物の1回の作動によりその入口が開き、または拡大した入賞口に対して許容される入賞球数の上限個数:例えば、9個)に達するまで、その入賞領域が開放または拡大され、これら何れかの条件を満した場合に大入賞口が閉鎖される、といった「ラウンド遊技」が、予め定められた規定ラウンド数(例えば、最大16ラウンド)繰り返される。
上記大当り遊技が開始すると、最初に大当りが開始された旨を報知するオープニング演出が行われ、オープニング演出が終了した後、ラウンド遊技が予め定められた規定ラウンド数を上限として複数回行われる。そして、規定ラウンド数終了後には、大当りが終了される旨を報知するエンディング演出が行われ、これにより大当り遊技が終了するようになっている。
上記の装飾図柄変動表示ゲームの実行に必要な情報に関しては、先ず主制御部20が、上始動口34又は下始動口35に遊技球が入球(入賞)したことに基づき、具体的には、上始動口センサ34a又は下始動口センサ35aにより遊技球が検出されて始動条件(特別図柄に関する始動条件)が成立したことを条件に、「大当り」又は「はずれ」の何れであるかを抽選する‘当落抽選(当否種別抽選)’と、「大当り」であったならばその大当り種別を、「はずれ」であったならばそのはずれ種別を抽選する‘図柄抽選(当選種別(当り種別)抽選)’とを含む大当り抽選を行い(はずれが1種類の場合は、はずれについて種別抽選を行う必要がないためその抽選を省略してもよい)、その抽選結果情報に基づき、特別図柄の変動パターンや、当選種別に応じて最終的に停止表示させる特別図柄(以下、「特別停止図柄」と称する)を決定する。
そして、主制御部20は、処理状態を特定する演出制御コマンドとして、少なくとも特別図柄の変動パターン情報(例えば、大当り抽選結果及び特別図柄の変動時間に関する情報等)を含む「変動パターン指定コマンド」を演出制御部24側に送信する。これにより、装飾図柄変動表示ゲームに必要とされる基本情報が演出制御部24に送られる。なお本実施形態では、演出のバリエーションを豊富なものとするべく、特別停止図柄の情報(図柄抽選結果情報(当り種別に関する情報))を含む「装飾図柄指定コマンド」も演出制御部24に送信するようになっている。
上記特別図柄の変動パターン情報には、特定の予告演出(例えば、後述の「リーチ演出」や「疑似連演出」など)の発生の有無を指定する情報を含むことができる。詳述するに、特別図柄の変動パターンは、大当り抽選結果に応じて、当りの場合の「当り変動パターン」と、はずれの場合の「はずれ変動パターン」に大別される。これら変動パターンには、例えば、後述のリーチ演出の発生を指定する‘リーチ変動パターン’、リーチ演出の発生を指定しない‘通常変動パターン’、疑似連演出とリーチ演出との発生(重複発生)を指定する‘疑似連有りリーチ変動パターン’、疑似連演出の発生を指定し、リーチ演出の発生は指定しない‘疑似連有り通常変動パターン’等、複数種類の変動パターンが含まれる。なお、リーチ演出や疑似連演出の演出時間を確保する関係上、通常、リーチ演出や疑似連演出を指定する変動パターンの方が、通常変動パターンよりも変動時間が長く定められている。
演出制御部24は、主制御部20から送られてくる演出制御コマンド(ここでは、変動パターン指定コマンドと装飾図柄指定コマンド)に含まれる情報に基づいて、装飾図柄変動表示ゲーム中に時系列的に展開させる演出内容(予告演出等の演出シナリオ)や、最終的に停止表示する装飾図柄(装飾停止図柄)を決定し、特別図柄の変動パターンに基づくタイムスケジュールに従い装飾図柄を変動表示して装飾図柄変動表示ゲームを実行させる。これにより、特別図柄表示装置38a、38bによる特別図柄の変動表示と時間的に同調して、主液晶表示装置36Mによる装飾図柄が変動表示され、特別図柄変動表示ゲームの期間と装飾図柄変動表示ゲーム中の期間とが、実質的に同じ時間幅となる。また演出制御部24は、演出シナリオに対応するように、主液晶表示装置36M又は光表示装置45a或いは音響発生装置46aをそれぞれ制御し、装飾図柄変動表示ゲームにおける各種演出を展開させる。これにより、主液晶表示装置36Mでの画像の再生(画像演出)と、効果音の再生(音演出)と、装飾ランプ45やLEDなどの点灯点滅駆動(光演出)とが実現される。
このように特別図柄変動表示ゲームと装飾図柄変動表示ゲームとは不可分的な関係を有し、特別図柄変動表示ゲームの表示結果を反映したものが装飾図柄変動表示ゲームにおいて表現されることとしているので、この二つの図柄変動表示ゲームを等価的な図柄遊技と捉えても良い。本明細書中では特に必要のない限り、上記二つの図柄変動表示ゲームを単に「図柄変動表示ゲーム」と称する場合がある。
(普通図柄変動表示ゲーム)

また遊技機1においては、普通図柄始動口37に遊技球が通過(入賞)したことに基づき、主制御部20において乱数抽選による「補助当り抽選」が行なわれる。この抽選結果に基づき、LEDにより表現される普通図柄を普通図柄表示装置39aに変動表示させて普通図柄変動表示ゲームを開始し、一定時間経過後に、その結果をLEDの点灯と非点灯の組合せにて停止表示するようになっている。例えば、普通図柄変動表示ゲームの結果が「補助当り」であった場合、普通図柄表示装置39aの表示部を特定の点灯状態(例えば、2個のLED39が全て点灯状態、又は「○」と「×」を表現するLEDのうち「○」側のLEDが点灯状態)にて停止表示させる。
この「補助当り」となった場合には、普通電動役物ソレノイド41c(図3参照)が作動し、これにより可動翼片47が逆「ハ」の字状に開いて下始動口35が開放または拡大されて遊技球が流入し易い状態(始動口開状態)となり、通常遊技状態よりも遊技者に有利な補助遊技状態(以下、「普電開放遊技」と称する)が発生する。この普電開放遊技では、普通変動入賞装置41の可動翼片47により、下始動口35の開放時間が所定時間(例えば0.2秒)経過するまでか、又は下始動口35に入賞した遊技球数が所定個数(例えば4個)に達するまで、その入賞領域が開放または拡大され、これら何れかの条件を満たした場合に下始動口35を閉鎖する、といった動作が所定回数(たとえば、最大2回)繰り返されるようになっている。
(保留について)

ここで本実施形態では、特別/装飾図柄変動表示ゲーム中、普通図柄変動表示ゲーム中、大当り遊技中、又は普電開放遊技中等に、上始動口34又は下始動口35若しくは普通図柄始動口37に入賞が発生した場合、すなわち上始動口センサ34a又は下始動口センサ35a若しくは普通図柄始動口センサ37aからの検出信号の入力があり、対応する始動条件(図柄遊技開始条件)が成立した場合、これを変動表示ゲームの始動権利に係るデータとして、変動表示中に関わるものを除き、所定の上限値である最大保留記憶数(例えば最大4個)まで保留記憶されるようになっている。この図柄変動表示動作に供されていない保留中の保留データ、又はその保留データに係る遊技球を、「作動保留球」とも称する。この作動保留球の数を遊技者に明らかにするため、遊技機1の適所に設けた専用の保留表示器(図示せず)、又は液晶表示装置36(主液晶表示装置36M又は副液晶表示装置36S)による画面中にアイコン画像として設けた保留表示器を点灯表示させる。
また本実施形態では、特別図柄1、特別図柄2、及び普通図柄に関する作動保留球をそれぞれ最大4個までRAM20cの該当記憶領域に保留記憶し、特別図柄又は普通図柄の変動確定回数として保留する。なお、特別図柄1、特別図柄2、及び普通図柄に関する各作動保留球数の最大記憶数(最大保留記憶数)は特に制限されない。また、各図柄の最大保留記憶数の全部又は一部が異なっていてもよく、その数は遊技性に応じて適宜定めることができる。
[3-2.遊技状態]

本実施形態に係る遊技機1では、特別遊技状態である上記大当りの他、複数種類の遊技状態を発生可能に構成されている。本実施形態の理解を容易なものとするために、先ず、種々の遊技状態について説明する。
本実施形態の遊技機1は、通常状態、時短状態、潜確状態、確変状態の少なくとも4種類の遊技状態を実行制御可能に構成されている。これら遊技状態は、大当り抽選確率状態(低確率状態、高確率状態)や電チューサポート状態(特典遊技)の発生の有無(電サポ有り、電サポ無し)等で区別される。
「電チューサポート状態」とは、普電開放遊技における普通変動入賞装置41の可動翼片47の開動作期間(可動翼片47の開放時間およびその開放回数の少なくともいずれか一方)が、通常状態よりも延長された「開放延長状態」を指す。開放延長状態が発生すると、可動翼片47の開動作期間が、例えば、通常時(非開放延長状態下)の0.2秒から1.7秒に延長され、またその開閉回数が、例えば、通常時の1回から2~3回に延長される。
本実施形態の場合、電チューサポート状態下では、補助当り抽選確率が所定確率(通常確率)の低確率(例えば256分の1)から高確率(例えば256分の255)に変動して(普図確率変動状態)が発生すると共に、1回の普通図柄変動表示ゲームに要する平均的な時間(普通図柄の変動表示動作時間)を短縮する‘普通図柄時短状態’が発生する(例えば10秒から1秒に短縮される)。従って、電チューサポート状態が発生すると、普電開放遊技が頻繁に発生し、通常状態よりも単位時間当りの可動翼片47の作動率が向上する作動率向上状態(高ベース状態)となる。以下、電チューサポート状態下を「電サポ有り」、そうでない場合を「電サポ無し」と略称する。
本実施形態において、「通常状態」とは、大当り抽選確率が所定確率(通常確率)の低確率(例えば399分の1)であり、電サポ無しの遊技状態(低確率+電サポ無し)を言う。
「時短状態」とは、大当り抽選確率が通常状態と同様の低確率であるが、1回の特別図柄変動表示ゲームに要する平均的な時間(特別図柄の変動表示動作時間))が通常状態よりも短縮される‘特別図柄時短状態’が発生すると共に、電チューサポート状態となる遊技状態を言う。つまり、時短状態中は「低確率+電サポ有り+特別図柄時短状態」となる。
「潜確状態」とは、大当り抽選確率が上記低確率よりも上昇した高確率(例えば39.9分の1)に変動した‘特別図柄確変状態’であり、電サポ無しの遊技状態(高確率+電サポ無し)を言う。
「確変状態」とは、大当り抽選確率が潜確状態と同様の高確率であるが、特別図柄時短状態及び電チューサポート状態が発生する遊技状態を言う。つまり、確変状態中は「高確率+電サポ有り+特別図柄時短状態」となる。
遊技状態に関し、大当り抽選確率に着目すれば、遊技状態が「通常状態」「時短状態」である場合は、少なくとも大当り抽選確率が‘低確率状態’となり、遊技状態が「潜確状態」「確変状態」である場合は、少なくとも大当り抽選確率が‘高確率状態’となる。なお、大当り中は大入賞口が開閉される大当り遊技が発生するが、大当り抽選確率及び電サポの有無については、上記通常状態と同じ、低確率・電サポ無しの遊技状態下に置かれる。
[3-3.当りについて]

続いて、遊技機1における「当り」について説明する。
本実施形態の遊技機1においては、複数種類の当りを対象に大当り抽選(当り抽選)を行うようになっている。本例の場合、当りの種別には、大当り種別に属する例えば「通常4R」「通常6R」「確変6R」「確変10R」の各大当りが含まれる。
なお、上記「R」の表記は、規定ラウンド数(最大ラウンド数)を意味する。
大当り種別は、条件装置の作動契機となる当りである。ここで「条件装置」とは、その作動がラウンド遊技を行うための役物連続作動装置の作動に必要な条件とされている装置で、特定の特別図柄の組合せが表示され、又は遊技球が大入賞口内の特定の領域を通過した場合に作動するものを言う。
上記確変状態は、大当り種別に当選することなく、特別図柄変動表示ゲームの実行回数が所定回数(例えば70回:規定ST回数)終了した場合に、高確率状態を終了させて低確率に移行させる、いわゆる「回数切り確変機(ST機)」となっており、規定ST回数が終了したときは、次ゲームから通常状態に移行される。但し、次回大当りが当選するまで継続させるタイプの「一般確変機」としてもよい。
なお、特別図柄変動表示ゲームの実行回数は、特別図柄変動表示ゲーム1、及び特別図柄変動表示ゲーム2の合計実行回数(特図1及び特図2の合計変動回数)であってもよいし、何れか一方の実行回数(例えば特別図柄変動表示ゲーム2の実行回数)であってもよい。また、時短状態の回数についても60回や100回に限らず、遊技性に応じて適宜定めることができる。また、どのような種類の当りを設けるかについても特に制限はなく、適宜定めることができる。
ここで、本例では、大当り種別と同様に「はずれ」についても複数の種別が設けられている。具体的には、「はずれ1」「はずれ2」「はずれ3」の三種のはずれ種別が設けられている。
前述のように、当落抽選の結果が「はずれ」であった場合には、図柄抽選においてはずれ種別の抽選が行われる。
[3-4.演出について]
(演出モード)

次に、演出モード(演出状態)について説明する。本実施形態の遊技機1には、遊技状態に関連する演出を現出させるための複数種類の演出モードが設けられており、その演出モード間を行き来可能に構成されている。具体的には、通常状態、時短状態、潜確状態、確変状態のそれぞれに対応した、通常演出モード、時短演出モード、潜確演出モード、確変演出モードが設けられている。各演出モードでは、装飾図柄の変動表示画面のバックグラウンドとしての背景表示が、それぞれ異なる背景演出により表示され、遊技者が現在、どのような遊技状態に滞在しているかを把握することができるようになっている。
演出制御部24(CPU24a)は、複数種類の演出モード間を移行制御する機能部(演出状態移行制御手段)を有する。演出制御部24(CPU24a)は、主制御部20(CPU20a)から送られてくる特定の演出制御コマンド、具体的には、主制御部20側で管理される遊技状態情報を含む演出制御コマンドに基づいて、主制御部20側で管理される遊技状態と整合性を保つ形で、現在の遊技状態を把握し、複数種類の演出モード間を移行制御可能に構成されている。上記のような特定の演出制御コマンドとしては、例えば、変動パターン指定コマンド、装飾図柄指定コマンド、遊技状態に変化が生じる際に送られる遊技状態指定コマンド等がある。
(予告演出)

次に、予告演出について説明する。演出制御部24は、主制御部20からの演出制御コマンドの内容、具体的には、少なくとも変動パターン指定コマンドに含まれる変動パターン情報に基づき、現在の演出モードと大当り抽選結果とに関連した様々な「予告演出」を現出制御可能に構成されている。このような予告演出は、当り種別に当選したか否かの期待度(以下「当選期待度」と称する)を示唆(予告)し、遊技者の当選期待感を煽るための「煽り演出」として働く。予告演出として代表的なものには、「リーチ演出」や「疑似連演出」、さらには「先読み予告演出」等がある。演出制御部24は、これら演出を実行(現出)制御可能な予告演出制御手段として機能する。
「リーチ演出」とは、リーチ状態を伴う演出態様(リーチ状態を伴う変動表示態様:リーチ変動パターン)を言い、具体的には、リーチ状態を経由して最終的なゲーム結果を導出表示するような演出態様を言う。リーチ演出には当選期待度に関連付けられた複数種類のリーチ演出が含まれる。例えば、ノーマルリーチ演出が出現した場合に比べて、当選期待度が相対的に高まるものがある。このようなリーチ演出を‘スーパーリーチ演出’と言う。この「スーパーリーチ」の多くは、当選期待感を煽るべく、ノーマルリーチよりも相対的に長い演出時間(変動時間)を持つ。また、ノーマルリーチやスーパーリーチには複数種類のリーチ演出が含まれる。本例では、スーパーリーチには、スーパーリーチ1、2、3、4という複数種類のリーチ演出が含まれ、これらスーパーリーチ1~4の当選期待度については「スーパーリーチ1<スーパーリーチ2<スーパーリーチ3<スーパーリーチ4」という関係性を持たせている。
「疑似連演出」とは、装飾図柄の疑似的な連続変動表示状態(疑似連変動)を伴う演出態様を言い、「疑似連変動」とは、装飾図柄変動表示ゲーム中において、装飾図柄の一部又は全部を一旦仮停止状態とし、その仮停止状態から装飾図柄の再変動表示動作を実行する、といった表示動作を1回または複数回繰り返す変動表示態様をいう。この点、複数回の図柄変動表示ゲームに跨って展開されるような後述の「先読み予告演出(連続予告演出)」とは異なる。このような「疑似連」は、基本的には、疑似変動回数が多くなるほど当選期待度が高まるようにその発生率(出現率)が定められており、例えば、疑似変動回数に応じて、スーパーリーチ等の期待感を煽るための演出が選択され易くされている。
「先読み予告演出」(以下では「先読み予告」や「先読み演出」と略称する場合もある)とは、先読み判定の結果に基づいて、判定対象の図柄の変動表示が行われるよりも前に、有利状態に制御される可能性を報知する演出を意味する。なお、「有利状態」は、遊技者にとって有利な状態を意味する。
具体的に、本例の先読み演出は、未だ図柄変動表示ゲームの実行(特別図柄の変動表示動作)には供されていない作動保留球(未消化の作動保留球)について、主に、保留表示態様や先に実行される図柄変動表示ゲームの背景演出等を利用して、当該作動保留球が図柄変動表示ゲームに供される前に、当選期待度を事前に報知し得る演出態様で行われる。なお、図柄変動表示ゲームにおいては、上記「リーチ演出」の他、いわゆる「SU(ステップアップ)予告演出」や「タイマ予告演出」、「復活演出」、「プレミア予告演出」などの種々の演出が発生し、ゲーム内容を盛り上げるようになっている。
ここで、図4を参照し、上記先読み予告演出の一例としての「保留変化予告演出」について説明する。
本実施形態の遊技機1の場合、主液晶表示装置36Mの画面内の上側の表示エリアには、装飾図柄変動表示ゲームを現出する表示エリア(装飾図柄の変動表示演出や予告演出を現出するための表示領域)が設けられており、また画面内の下側の表示エリアには、特別図柄1側の作動保留球数を表示する保留表示領域76(保留表示部a1~d1)と特別図柄2側の作動保留球数を表示する保留表示領域77(保留表示部a2~d2)とが設けられている。作動保留球の有無に関しては、所定の保留表示態様により、その旨が報知される。図4では、作動保留球の有無を点灯状態(作動保留球あり:図示の「○(白丸印)」)、又は消灯状態(作動保留球なし:図示の破線の丸印)にて、現在の作動保留球数に関する情報が報知される例を示している。
作動保留球の有無に関する表示(保留表示)は、その発生順(入賞順)に順次表示され、各保留表示領域76、77において、一番左側の作動保留球が、当該保留表示内の全作動保留球のうち時間軸上で一番先に生じた(つまり最も古い)作動保留球として表示される。また、保留表示領域76、77の左側には、現に特別図柄変動表示ゲームに供されている作動保留球を示すための変動中表示領域78が設けられている。本実施形態の場合、変動中表示領域78は、受座Jのアイコン上に、現在ゲームに供されているゲーム実行中保留Kのアイコンが載る形の画像が現れるように構成されている。すなわち、特別図柄1又は特別図柄2の変動表示が開始される際に、保留表示領域76、77に表示されていた最も古い保留a1又はa2のアイコン(アイコン画像)が、ゲーム実行中保留Kのアイコンとして、変動中表示領域78おける受座Jのアイコン上に移動し、その状態が所定の表示時間にわたって維持される。
作動保留球が発生した場合、主制御部20から、大当り抽選結果に関連する先読み判定情報と、先読み判定時の作動保留球数(今回発生した作動保留球を含め、現存する作動保留球数)とを指定する「保留加算コマンド」が演出制御部24に送信される(図28のステップS1309~S1312参照)。
本実施形態の場合、上記保留加算コマンドは2バイトで構成され、保留加算コマンドは、先読み判定時の作動保留球数を特定可能とする上位バイト側のデータと、先読み判定情報を特定可能とする下位バイト側データとから構成される。
ここで、上記説明から理解されるように、本実施形態では、上始動口34又は下始動口35に入賞が発生して新たに保留球が生じたことに基づいて、当該保留球についての先読み判定として、当該保留球に係る図柄変動表示ゲームについての大当り抽選が行われる。後述するように、主制御部20は、このような先読み判定として行った大当り抽選の結果を表す情報を、RAM20cの該当記憶領域に保留記憶する。
先読み判定時に得られた大当り抽選結果の情報は、図柄変動表示ゲームにおける図柄変動パターンを選択(抽選)するために用いられるものであり、いわば「変動パターン選択用情報」と換言することができる。従って、主制御部20は、先読み判定を行って、その結果得られる「変動パターン選択用情報」をRAM20cの所定領域に保留記憶していると言うことができる。
演出制御部24は、主制御部20が送信した上記の保留加算コマンドを受信すると、これに含まれる先読み判定情報に基づき、上記保留表示に関連する表示制御処理の一環として、「先読み予告演出」に関する演出制御処理を行う。具体的には、先読み予告演出の実行可否を抽選する「先読み予告抽選」を行い、これに当選した場合には、先読み予告演出を現出させる。
ここで、先読み判定情報とは、具体的には、主制御部20において、作動保留球が図柄変動表示ゲームに供される際に実行される大当り抽選結果(変動開始時の大当り抽選結果)や変動開始時の変動パターンを先読み判定して得られる遊技情報である。すなわち、この情報には、少なくとも変動開始時の当落抽選結果を先読み判定した情報(先読み当落情報)が含まれ、その他、図柄抽選結果を先読み判定した情報(先読み図柄情報)や変動開始時の変動パターンを先読み判定した情報(先読み変動パターン情報)を含ませることができる。如何なる情報を含む保留加算コマンドを演出制御部24に送るかについては、先読み予告にて報知する内容に応じて適宜定めることができる。
本例では、保留加算コマンドには先読み当落情報、先読み図柄情報、及び先読み変動パターン情報が含まれているものとする。
なお、作動保留球発生時の先読み判定により得られる「先読み変動パターン」は、必ずしも作動保留球が実際に変動表示動作に供されるときに得られる「変動開始時の変動パターン」そのものではある必要はない。例えば、上記変動開始時の変動パターンが「スーパーリーチ1」を指定する変動パターンであるケースを代表的に説明すれば、本ケースでは、先読み変動パターンにより指定される内容が「スーパーリーチ1」というリーチ演出の種類そのものではなく、その骨子である「スーパーリーチ種別」である旨を指定することができる。
本実施形態の場合、先読み予告抽選に当選した場合には、保留表示部a1~d1、a2~d2の保留アイコンのうちで、その先読み予告対象となった保留アイコンが、例えば、通常の保留表示(通常保留表示態様)の白色から、予告表示の青色、緑色、赤色、デンジャー柄(或いは虹色などの特殊な色彩や絵柄)による保留表示(特別保留表示態様)に変化し得る「保留表示変化系」の先読み予告演出(「保留変化予告」とも称する)が行われる。
図4では、ハッチングされた保留表示部b1の作動保留球が、特別保留表示に変化した例を示している。ここで、保留アイコンの青色、緑色、赤色、デンジャー柄の表示は、この順に、当選期待度が高いことを意味しており、特にデンジャー柄の保留アイコンの表示は、大当り当選期待度が極めて高い表示となるプレミアム的な保留アイコンとされている。
(演出手段)

遊技機1における各種の演出は、遊技機1に配設された演出手段により現出される。この演出手段は、視覚、聴覚、触覚など、人間の知覚に訴えることにより演出効果を発揮し得る刺激伝達手段であれば良く、装飾ランプ45やLED装置などの光発生手段(光表示装置45a:光演出手段)、スピーカ46などの音響発生装置(音響発生装置46a:音演出手段)、主液晶表示装置36Mや副液晶表示装置36Sなどの演出表示装置(表示手段)、操作者の体に接触圧を伝える加圧装置、遊技者の体に風圧を与える風圧装置、その動作により視覚的演出効果を発揮する可動体役物などは、その代表例である。ここで、演出表示装置は、画像表示装置と同じく視覚に訴える表示装置であるが、画像によらないもの(例えば7セグメント表示器)も含む点で画像表示装置と異なる。画像表示装置と称する場合は主として画像表示により演出を現出するタイプを指し、7セグメント表示器のように画像以外により演出を現出するものは、上記演出表示装置の概念の中に含まれる。
<4.主制御部の処理>

続いて、本実施形態の主制御部20が行う処理について説明する。主制御部20の処理は、主に、所定のメイン処理(主制御側メイン処理:図8)と、CTCからの定時割込みで起動されるタイマ割込み処理(主制御側タイマ割込み処理:図20)とを含んで構成される。
[4-1.主制御側メイン処理]

図5は、主制御側メイン処理を示したフローチャートである。
主制御側メイン処理が開始されるのは、停電状態や電源異常等からの復旧時に電源基板からのシステムリセット信号によるシステムリセットが生起した場合や、制御プログラムが暴走したことによりウォッチドッグタイマ機能(WDT)が発揮されてCPU20aが強制的にリセット(WDTリセット)される場合等がある。何れの場合でも、当該メイン処理が開始されると、主制御部20(CPU20a)は、先ず、CPU20aを含む各部のレジスタの値を初期設定する等の遊技動作開始に必要な初期設定処理を実行する(ステップS101)。
(初期設定処理)

図6は、ステップS101の初期設定処理を示したフローチャートである。
図6において、上記のシステムリセットやWDTリセットが発生すると、CPU20aはステップS201で、自らを割込み禁止状態に設定し、次いで、ステップS202のスタックポインタ設定処理として、RAM20cのスタックポインタの値をスタック領域の最終アドレスに対応して設定する処理を実行する。そして、続くステップS203で、RAMプロテクトを無効とすると共に、RAM20cの指定エリア外走行禁止機能における禁止領域を無効とする処理を行う。
次いで、CPU20aはステップS204で、セキュリティ信号OFF、設定値表示OFF、発射許可信号OFFとするための処理を実行する。ここで、セキュリティ信号は、枠用外部集中端子基板21を通じてホールコンピュータHCに出力される信号であり、ホールコンピュータHCに設定変更中等の状態通知を行うための信号として機能する。設定値表示OFFとは、設定・性能表示器97における設定値Veの表示をOFFさせることを意味する。
発射許可信号は、前述のように払出制御基板29から発射制御基板28に出力される信号であり、CPU20aは払出制御基板29に対する指示を行って発射許可信号をOFFさせる。
ここで、セキュリティ信号OFF、設定値表示OFFは、設定変更中の電源入切対策である。すなわち、設定変更処理において設定値Veを表示中に電源が切られた可能性もあるため、設定値表示とセキュリティ信号を一旦OFFとするものである。
ステップS204に続くステップS205でCPU20aは、電源異常チェック処理を実行する。
図7に示すように、電源異常チェック処理では、WDTタイマをクリアし(ステップS11)、電源異常信号がONであるか否かを判定する(ステップS12)。電源異常信号は、電源基板から出力される信号であり、電源異常信号OFFが正常レベルであることを表し、電源異常信号ONが正常レベルでない(つまり異常である)ことを表す。電源異常信号がONであれば、CPU20aは図5に示すステップS101に戻り、主制御側メイン処理を最初からやり直す。すなわち、電源に異常が認められた場合には主制御側メイン処理がリセットされるものである。
そして、電源異常信号がONでなければ、電源に異常は認められないため、CPU20aは電源異常チェック処理を終える。
図6に戻り、CPU20aはステップS205の電源異常チェック処理を終えたことに応じ、ステップS206で起動時の各種設定処理を行う。このステップS206の設定処理では、例えば、所定の割込みモードに設定する割込みモード設定処理や、内部ハード乱数回路を起動させる内部ハード乱数設定処理等を実行する。また、このステップS206の設定処理では、CPU20aが備える各種レジスタのうち所定のレジスタに対し初期値をセットする処理も行われる。
ステップS206に続くステップS207でCPU20aは、サブ制御基板(演出制御部24)の起動待ち時間をセットする。そして、ステップS208~S210の処理により、セットした起動待ち時間が経過するのを待機する。具体的には、セットした起動待ち時間を1減算し(ステップS208)、電源異常チェック処理(ステップS209)を実行した上で、起動待ち時間がゼロでなければ(ステップS210:≠0)ステップS208の処理に戻る。このような起動待ち時間に基づく待機処理により、演出制御部24の起動が完了することになる。
ステップS210において、上記の起動待ち時間が経過した場合(待ち時間=0)、CPU20aはステップS211に進み、待機画面表示コマンドを演出制御部24に送信する。
この待機画面表示コマンドを受け、演出制御部24は、例えば「Please Wait...」等の文字が配された画面等、起動時に対応して定められた所定の画面表示を液晶表示装置36に実行させるための制御を行う。
ステップS211の送信処理を実行したことに応じ、CPU20aはステップS212に処理を進めて、該ステップS212とステップS213の処理により、電源異常チェック処理(S212:図7参照)を実行しながら、払出制御基板29からの電源投入時信号が送られてくるのを待機する。この電源投入時信号は、払出制御基板29が正常に立ち上がった場合に出力される信号であり、CPU20aは、払出制御基板29が正常起動するまで待機するようになっている。これにより、何らかのトラブルによって払出制御基板29が正常に機能していない場合には、ステップS212とS213の処理が繰り返されるだけで遊技動作は開始されない。従って、例えば賞球が払い出されない等の払出異常が発生せず、遊技者に不信感を与えることの防止が図られる。
CPU20aは、上記の電源投入時信号が送られてきた場合は(ステップS213:ON)、ステップS101の初期設定処理を終える。
(初期設定後の処理)

CPU20aは、上記の初期設定処理を終えたことに応じ、図5に示すステップS102に進む。
ステップS102でCPU20aは、入力ポートn(すなわち所定の入力ポート)の情報を取得し、Wレジスタにコピーする。
ここで、入力ポートnは1バイト(8ビット)のポートとされ、本例では、次の各信号が入力される。なお、以下に示す「b0」~「b7」はビット位置を表す。

b0:設定キー(設定キースイッチ94からの入力信号)
b1:補給切れ検出信号
b2:計数エラー信号
b3:断線検出信号1
b4:断線検出信号2
b5:扉開放信号(前扉開放センサ61の検出信号)
b6:RAMクリアボタン(RAMクリアスイッチ98からの入力信号)
b7:電源投入時信号及び払出通信確認信号

ここで、b0の設定キーについては、「0」が設定キースイッチ94=OFF、「1」が設定キースイッチ94=ONを意味する。また、b5の扉開放信号については、「0」が扉閉鎖(前枠2が閉鎖)、「1」が扉開放を意味する。さらに、b6のRAMクリアボタンについては、「0」がRAMクリアスイッチ98=OFF(ボタン非操作状態)、「1」がRAMクリアスイッチ98=ON(ボタン操作状態)を意味する。
ステップS102に続くステップS103でCPU20aは、Wレジスタの値をマスクする。具体的には、以下で説明する設定変更処理(S115)、RAMクリア処理(少なくともS117及びS118)、設定確認処理(S109)、バックアップ復帰処理(S111)の移行判定を行うにあたって必要とされる値である設定キー(b0)、RAMクリアボタン(b6)、扉開放信号(b5)以外の値をマスクする処理を行う。
先の説明から理解されるように、設定変更処理への移行条件としては、起動時において、前枠2が開放された状態で設定キーとRAMクリアボタンの双方が操作状態とされることとされている。
また、本例において、RAMクリア処理への移行条件は、操作の面では、起動時において設定キーが非操作状態、RAMクリアボタンが操作状態とされることとされている。
また、設定確認処理への移行条件は、操作の面では、前枠2が開放された状態において、設定キーが操作状態、RAMクリアボタンが非操作状態とされることとされている。
さらに、バックアップ復帰処理への移行条件は、操作の面では、起動時において設定キー、RAMクリアボタンの双方が非操作状態とされることとされている。
図8は、これら設定変更処理、RAMクリア処理、設定確認処理、バックアップ復帰処理への移行にあたっての操作面での各判定条件と、Wレジスタの値との対応関係を示している。
図8では、設定変更処理、RAMクリア処理、設定確認処理、バックアップ復帰処理への移行判定の順番を示している。
1番目の設定変更処理への移行判定は、図示のように判定条件が設定キー:ON(設定キースイッチ94:ON)、扉開放:ON(前扉開放センサ61:ON)、RAMクリアスイッチ98:ONとされ、従ってWレジスタの値としては0ビット目:1、5ビット目:1、6ビット目:1が条件とされる。
2番目のRAMクリア処理への移行判定は、判定条件がRAMクリアスイッチ98:ONであり、Wレジスタの値としては6ビット目:1か否かを判定することになる。ここで、本例では、RAMクリア処理への移行判定は、設定変更処理の移行条件が不成立の場合に実行される。また、設定確認処理、バックアップ復帰処理への移行にあたっては、RAMクリアスイッチ98がOFFであることが条件とされる。これらの点より、設定変更処理への移行条件が不成立であって、RAMクリアスイッチ98がONであれば、RAMクリア処理への移行操作が行われていると推定することができる。このため本例では、上記のようにRAMクリア処理への移行判定では、操作の面では、RAMクリアスイッチ98がONであるか否か(6ビット目:1か否か)のみを判定することとしている。
3番目の設定確認処理への移行判定は、判定条件が設定キー:ON、扉開放:ON、RAMクリアスイッチ98:OFFとされ、従ってWレジスタの値としては0ビット目:1、5ビット目:1、6ビット目:0が条件とされる。
さらに、4番目のバックアップ復帰処理への移行判定は、判定条件が設定キー:OFF、RAMクリアスイッチ98:OFFとされ、従ってWレジスタの値としては0ビット目:0、6ビット目:0が条件とされる。
ここで、バックアップ復帰処理について、設定確認処理を経ずにバックアップ復帰処理のみが行われるための移行条件としては、上記のように操作面では設定キー:OFF、RAMクリアスイッチ98:OFFと表記することができるが、設定確認処理の実行有無を問わず単にバックアップ復帰処理が行われる状態に移行するか否かの条件としては、後述するバックアップフラグがONであるということが条件となる(ステップS106の判定処理を参照)。
説明を図5に戻す。
CPU20aは、ステップS103のマスク処理を行ったことに応じ、ステップS104で設定変更条件成立判定処理を実行する。具体的には、設定変更モードに移行すべきか否かを判定するべく、ステップS103のマスク後の値(3ビット)が「111」であるか否かを判定する。
マスク後の値が「111」であり、設定変更条件が成立しているとの肯定結果が得られた場合、CPU20aはステップS115の設定変更処理を実行する。すなわち、RAMクリアボタンや設定キーの操作に応じて設定値Veを新たに設定するための処理を行う。
なお、ステップS115の設定変更処理の詳細については後に改めて説明する。
ここで、上記のように本実施形態では、設定キースイッチ94、前扉開放センサ61、及びRAMクリアスイッチ98による検出信号、換言すれば、設定変更モードへの移行判定を行うにあたり用いられる各検出信号を主制御部20の同一入力ポートに入力し、入力した各検出信号の値がそれぞれ所定条件を満たす値であるか否かを一括判定している。
これにより、設定変更モードへの移行判定について、各検出信号の値が所定条件を満たす値か否かを個別判定する場合よりも判定処理数の削減が図られる。
ステップS115の設定変更処理を実行したことに応じ、CPU20aはステップS116でRAMクリア処理を実行する。このRAMクリア処理は、RAM20cにおけるワーク領域を含む所定領域(使用領域)内の値を初期化する処理や、ステップS115で実行した設定変更処理の終了を演出制御部24側に通知するための設定変更終了コマンドの送信処理を含むが、詳細は後述する。
続いて、先のステップS104において、ステップS103によるマスク後の値が「111」ではなく、設定変更条件が成立していないとの否定結果が得られた場合、CPU20aはステップS105に進んでRAM異常か否かを判定する。具体的には、RAM20cのワーク領域に格納されている「設定値」が使用範囲Ru外の値(本例では「1」「2」「6」の範囲外)であるか否かを少なくとも判定する。
ここで、CPU20aが設定値Veに関して扱う値としては、設定値Vdがある。設定値Vdは、設定値Vdは、設定値Veに対応した値であり、本例では1バイトの値とされ、前述した使用範囲Ruに対応する少なくとも3段階を表現可能となるように、00H(0)~02H(3)の値が定められている。なお、「H」は16進数を意味する(以下、同様)。本例では、設定値Vd=00Hが設定値Ve=「1」を、設定値Vd=01Hが設定値Ve=「2」を、設定値Vd=02Hが設定値Ve=「6」をそれぞれ表すものとされる。主制御部20において、「設定値」としては主に設定値Vdが扱われるもので、主制御部20のRAM20cのワーク領域における「設定値」の格納領域にはこの設定値Vdが格納される。
ステップS105の判定処理では、ワーク領域に格納された設定値Vdが00H~02Hの範囲の値であるか否かを判定する。
ステップS105において、設定値が上記の使用範囲Ru外(つまり正常な範囲外)の値であり、RAM異常であると判定した場合、CPU20aはステップS112以降に続く電源再投入を待機するための処理に以降する。
具体的に、ステップS112でCPU20aは、電源再投入時のコマンド送信処理として、パチンコ遊技機1の電源再投入且つ設定変更を促すための報知が行われるように指示するための演出制御コマンド(設定変更待ちコマンド)を演出制御部24に送信する処理を行う。起動時においてRAM異常が検知された場合には、強制的に設定変更モードに移行させて設定値Veの変更(設定)を受け付ける。このためCPU20aは、先ずステップS112で、設定変更待ちコマンドにより設定変更モードに移行する旨を演出制御部24側に通知する。
該設定変更待ちコマンドを受け演出制御部24は、例えば「扉を開けて設定を変更して下さい」等の文字を含む画面等、設定変更操作を促すための画面表示を液晶表示装置36に実行させる。このとき、演出制御部24は、該画面表示と共に対応する光演出(例えば光表示装置45aにおける全LED点灯)や音演出を現出させる制御を行ってもよい。
ステップS112に続くステップS113でCPU20aは、バックアップフラグを00H(つまりOFF)とした上で、ステップS114のエラー表示処理を繰り返す。このステップS114のエラー表示処理では、設定・性能表示器97にエラー表示を実行させるための処理が行われる。このエラー表示処理はパチンコ遊技機1の電源が遮断されるまで繰り返され、電源が再投入されると主制御側メイン処理としてステップS101以降の処理が再び実行される。このとき、上記の画面表示等に応じて設定変更モードへの移行操作が行われていれば、設定変更モードへの移行が行われ、RAM異常状態の解消が図られる。
上記したステップS105において、設定値が使用範囲Ru外の値ではなく、RAM異常ではないと判定した場合、CPU20aはステップS106に進んでバックアップフラグがON状態か否か(本例ではバックアップフラグ=5AHがON状態)を判定する。
遊技機1において、電源遮断時には、主制御側タイマ割込み処理における後述する電源チェック・バックアップ処理(ステップS901、図19参照)により、RAM20cの記憶情報についてバックアップのための処理が行われる。電源遮断時に適正にバックアップ処理が行われた場合には、バックアップフラグがON状態とされる(図19のステップS1010参照)。このため上記のステップS106ではバックアップフラグを確認して、バックアップ復帰可能であるか否かの判定を行う。具体的に、ステップS106では、RAM20cの所定領域に格納されたバックアップフラグがON状態(5AH)である否かを判定する。
ステップS106でバックアップフラグがONでないと判定した場合、CPU20aは上述したステップS112に処理を進める。これにより、バックアップ復帰条件を満たさない場合には、先に説明したRAM異常が認められた場合と同様、強制的に設定変更モードへの移行が行われる。
ここで、前述したように、ステップS106の判定処理は、設定確認処理の実行有無を問わず、バックアップ復帰処理が行われる状態への移行可否を判定する処理に相当するものである。
一方、ステップS106でバックアップフラグがONであると判定した場合、CPU20aは、ステップS107でRAMクリア条件(RAMクリア処理への移行条件)が成立しているか否かを判定する。具体的には、Wレジスタの6ビット目の値が「1」か否かを判定する。
Wレジスタの6ビット目の値が「1」であり、RAMクリア条件が成立しているとの肯定結果が得られた場合、CPU20aは上述したステップS116に処理を進める。これにより、上述したRAMクリア処理が実行される。
ここで、上記したステップS107→S116に至るルートを参照して分かるように、本実施形態の遊技機1では、設定変更をせずにRAMクリアを行うことが可能とされている。これにより、RAM20cにおける払出関係のデータ等、設定値Veに係るデータ以外をクリアしたい場合に対応可能とされている。
また、ステップS107において、Wレジスタの6ビット目の値が「1」でなく、RAMクリア条件が成立していないとの否定結果が得られた場合、CPU20aはステップS108に進んで設定確認条件(設定確認処理への移行条件)が成立しているか否かを判定する。すなわち、ステップS103によるマスク後のWレジスタの値が「110」か否かを判定する。
マスク後のWレジスタの値が「110」であり設定確認条件が成立しているとの肯定結果が得られた場合、CPU20aはステップS109の設定確認処理を実行し、ステップS110に処理を進める。すなわち、バックアップ復帰のための処理に移行する。
なお、ステップS109の設定確認処理の詳細については改めて説明する。
一方、マスク後のWレジスタの値が「110」ではなく設定確認条件が成立していないとの否定結果が得られた場合、CPU20aはステップS109の設定確認処理をパスして、ステップS110に進む。
ステップS110でCPU20aは、バックアップ復帰時のコマンド送信処理として、バックアップ復帰時に対応した所定の演出制御コマンドを演出制御部24に送信する処理を行う。
ステップS110に続くステップS111でCPU20aは、バックアップ復帰処理を行う。
バックアップ復帰処理は、電源遮断時にバックアップされたRAM20cの記憶内容に基づいて、電源投入後に電源遮断前の動作に復帰させる処理となる。具体的に、CPU20aは、電源遮断前におけるスタックポインタを復帰し、電源遮断時の処理状態から遊技動作を開始するための処理を行う。
また、バックアップ復帰処理では、バックアップ復帰した場合に対応した情報表示指示を行うための停電復帰表示コマンド(OB03H)が後述するステップS119のメインループ前処理において演出制御部24に送信されるようにするべく、停電復帰表示コマンドの下位バイトデータをレジスタに記憶する処理を実行する。
ステップS111のバックアップ復帰処理を実行した場合、又は前述したステップS116のRAMクリア処理を実行した場合(つまり設定変更処理とRAMクリア処理の双方を実行した場合、又はRAMクリア処理のみを実行した場合)、CPU20aはステップS117処理を進める。
ステップS117でCPU20aは、例えば4ms等の所定時間毎に定期的にタイマ割込みを発生させるためのCTCの設定を行う。
このステップS117の設定処理が行われることで、以降、割込みコントローラへの割込み要求信号が定期的に出力され、主制御側タイマ割込み処理が実行される。
続くステップS118でCPU20aは、遊技開始を指示するための演出制御コマンドを演出制御部24に送信する処理を行い、次いで、ステップS119に処理を進めてメインループ前処理を実行した上で、ステップS120のメインループ処理を実行する。
なお、ステップS119のメインループ前処理については後に改めて説明する。
(メインループ処理)

図9は、ステップS120のメインループ処理を示したフローチャートである。
図9のメインループ処理において、CPU20aはステップS601で、自身を割込み禁止状態に設定し、続くステップS602で乱数更新処理を実行する。この乱数更新処理では、特別図柄変動表示ゲームや普通図柄変動表示ゲームに使用される各種乱数(インクリメント処理によって所定数値範囲を循環している大当り抽選に係る乱数(図柄抽選に利用される特別図柄判定用乱数)や、補助当り抽選に係る乱数(補助当りの当落抽選に利用される補助当り判定用乱数))の初期値(スタート値)変更のために使用する乱数(特別図柄判定用初期値乱数、補助当り判定用初期値乱数)や、変動パターンの選択に利用される変動パターン用乱数を更新する。
本実施形態のRAM20cには、大当り抽選に係る図柄抽選、補助当り抽選、又は変動パターン抽選などに利用される各種の乱数カウンタとして、特別図柄判定用乱数カウンタ初期値の生成用カウンタ、特別図柄判定用乱数カウンタ、補助当り判定用乱数カウンタ初期値の生成用カウンタ、補助当り判定用乱数カウンタ、変動パターン用乱数カウンタ等が設けられている。これらのカウンタは、ソフトウェア的に乱数を生成する乱数生成手段としての役割を果たす。ステップS602の乱数更新処理では、上述の特別図柄判定用乱数カウンタや補助当り判定用乱数カウンタの初期値を生成する2つの初期値生成用カウンタ、変動パターン用乱数カウンタ等を更新して、上記各種のソフト乱数を生成する。例えば、仮に、変動パターン用乱数カウンタとして取り得る数値範囲が「0~238」とすると、RAM20cの変動パターン用乱数の値を生成するためのカウント値記憶領域から値を取得し、取得した値に「1」を加算してから元のカウント値記憶領域に格納する。このとき、取得した値に「1」を加算した結果が「239」であれば「0」を元の乱数カウンタ記憶領域に格納する。他の初期値生成用乱数カウンタも同様に更新する。
ステップS602の乱数更新処理を終えると、CPU20aはステップS603で全レジスタの値を退避する処理を行った上で、ステップS604で性能表示モニタ集計除算処理を行う。
この性能表示モニタ集計除算処理は、前述した性能情報としての値(ここでは、例えば前述した「通常時比率情報」としての値とする)を演算する処理である。前述のように、通常時比率情報の値は、総払出個数と総アウト球数とを用いて算出されるものであるが、CPU20aは、総払出個数については、入賞口(上始動口34、下始動口35、一般入賞口43、大入賞口50)に入賞した遊技球の数をカウントした結果に基づき算出し、総アウト球数については、アウト口49から排出された遊技球の数をカウントすることで求める。
入賞球数のカウント、及びアウト球数のカウントは、主制御側タイマ割込み処理における後述する入力管理処理(図18ステップS904を参照)で行われる。CPU20aは、このようにタイマ割込み処理側で行う入賞球数のカウント、及びアウト球数のカウントのそれぞれによるカウント値に基づき、ステップS604において通常時比率情報としての値を演算する。前述のように、演算した通常時比率情報としての値は、RAM20cの所定領域(計測情報格納領域)に格納される。
なお、このように算出された通常時比率情報の値は、主制御側タイマ割込み処理における後述する性能表示モニタ表示処理(図18ステップS916を参照)によって設定・性能表示器97に表示される。
ステップS604に続くステップS605でCPU20aは、全レジスタ復帰処理を行い、さらに続くステップS606で自身を割込み許可状態に設定した上で、ステップS601に戻る。
このようにステップS123のメインループ処理では、ステップS601~S606の処理が無限ループ状に繰り返される。CPU20aは、間欠的に実行されるタイマ割込み処理を行っている間を除いて、これらステップS601~S606の処理を繰り返し実行することになる。
(設定変更処理)

図10は、ステップS115の設定変更処理を示したフローチャートである。
この設定変更処理では、操作に基づき設定値Veを設定するための処理や、設定変更中である旨や設定変更が終了(完了)した旨を通知するための演出制御コマンドを演出制御部24に送信するための処理等が行われる。
図10において、CPU20aは、先ずステップS401で設定変更中コマンド(BA76H)を演出制御部24に送信する処理を実行する。
この設定変更中コマンドを受け、演出制御部24は、例えば「設定変更中です」等の文字が配された画面等、設定変更中である旨を報知するための画面表示を液晶表示装置36に実行させたり、スピーカ46から設定変更中に対応した音出力が行われるようにするための処理を行う。さらにこの際、演出制御部24は、前述した光発生手段(光表示装置45a)における所定のLED(例えば全LED)を所定の点灯パターンにより点灯させてもよい。
続くステップS402でCPU20aは、バックアップフラグを00H(つまりOFF状態)とした上で、ステップS403でシステム動作ステータス=2に設定する。このシステム動作ステータスは、起動時においてステップS115の設定変更処理を経由したか否かを少なくとも識別するための情報であり、「2」は設定変更処理を経由した旨を表し、「2」以外の値(例えば「0」)が設定変更処理を経由していない旨を表す。
図5を参照して分かるように、本例では、設定変更処理とRAMクリア処理(S116)の双方を実行する場合と、設定変更処理を実行せずRAMクリア処理のみを実行する場合とでRAMクリア処理(プログラム)を共用するものとしているが、上記のシステム動作ステータスを用いることで、RAMクリア処理のプログラムを共用しながら、前者の場合と後者の場合とで処理を実行し分けることができる。
ステップS403に続くステップS404でCPU20aは、設定値を取得する処理を実行する。具体的には、RAM20cのワーク領域に格納されている設定値Vd(本例では00H~02Hの何れか)を取得する。
ステップS404に続くステップS405以降の処理は、設定値Veの順送り操作(RAMクリアボタンの操作)に応じて設定・性能表示器97における表示値を更新したり、設定変更の完了操作(設定キーの操作)に応じて設定値Veを設定したりするための処理となる。
先ず、CPU20aはステップS405で、取得した設定値Vdを1デクリメントし(「設定値-1」)、続くステップS406で設定値Vdが1よりも大きいか否かを判定する(設定値>1」)。本例では、設定値Vdの最大値は02Hであるため、設定変更処理の開始後に初回に実行されるステップS406で設定値>1と判定されることはない。
ステップS406において、設定値Vdが1よりも大きくなければ、CPU20aはステップS407でキャリーフラグをセットした上で(ONとした上で)、ステップS408で設定値Vdを1インクリメント(「設定値+1」)し、ステップS409でキャリーフラグがONであるか否か判定する。キャリーフラグがONであれば、CPU20aはステップS411で設定変更時コマンドの取得処理を実行し、続くステップS412のコマンド処理によって設定変更時コマンドを演出制御部24に送信する。
なお、設定変更時コマンドについては後述する。
そして、ステップS412のコマンド送信処理を実行したことに応じ、CPU20aはステップS413の出力管理処理を実行する。この出力管理処理により、設定・性能表示器97に現在の設定値Vdに対応する設定値Veが表示される。なお、ステップS413の出力管理処理の詳細は後述する。
ステップS413に続くステップS414でCPU20aは、設定キーがOFFであるか否か、つまり設定キースイッチ94がOFFであるか否かを判定し、設定キーがOFFでなければステップS415で変更スイッチ、すなわちRAMクリアスイッチ98がONであるか否かを判定する。RAMクリアスイッチ98がONでなければ、CPU20aはステップS413の出力管理処理を再度実行する。
ステップS413~S415の処理により、CPU20aは設定キー、変更スイッチの何れかがONとなるまで待機すると共に、待機中はステップS413の処理によって設定・性能表示器97に現在の設定値Veを表示させるための処理を繰り返す。
ステップS415において、変更スイッチがONであれば、CPU20aはステップS406に戻る。
ここで、ステップS115の設定変更処理の開始時に取得された設定値Vd(それまで設定中であった設定値Vd)が02Hであった場合には、ステップS415で変更スイッチがONと判定されたことに応じて実行されるステップS406の処理において、「設定値>1」であるとの判定結果が得られる(ステップS405で-1されるがステップS408で+1されるため)。設定値Vdが02Hの状態で行われた変更操作(順送り操作)に応じては、設定値Vdを00Hに戻すべきである。このため、ステップS406で「設定値>1」と判定された場合は、ステップS407のキャリーフラグセット処理をパスして、ステップS408に処理を進める。これにより、ステップS409ではキャリーフラグがOFFと判定されるため、処理がステップS410に進められて設定値Vdが00Hに戻される(「設定値←0」)。
CPU20aは、ステップS410で設定値Vdを00Hに戻したことに応じ、ステップS411、S412の処理を経由してステップS413に処理を進める。つまりこの場合は、設定・性能表示器97に設定値Vd=00Hに対応した設定値Ve(本例では「1」)が表示される。
上記の処理により、設定変更中においては、変更操作に応じて設定値Vdが00H~02Hの範囲内(使用範囲Ru内)で循環式に変更されると共に、変更された設定値Vdに対応する設定値Veが設定・性能表示器97に表示される。
また、ステップS412で送信する設定変更時コマンドは、設定変更処理中において選択中の設定値Vdに応じた設定値Veを演出制御部24に通知するためのコマンドであり、該選択中の設定値Veを表す情報が格納されるコマンドとされる。
上記したステップS406~S415の一連の処理により、設定値の順送り操作により選択中の設定値Veが切り替わるごとに、切り替え後の設定値Veを反映した設定変更時コマンドが演出制御部24に送信されることになる。
なお、図10では図示による説明を省略したが、設定値Vdに応じた設定値Veを取得するにあたっては、CPU20aは後述する設定値オフセット変換テーブルを用いる(図16参照)。
ステップS415において、設定キーがOFFであると判定した場合、CPU20aはステップS416に進んで設定値Vdを保存する処理を実行する。すなわち、設定値VdをRAM20cのワーク領域における所定領域に格納する処理を実行する。
CPU20aは、ステップS416の保存処理を実行したことに応じてステップS115の設定変更処理を終える。
図11は、ステップS413の出力管理処理のフローチャートである。
先ず、CPU20aはステップS501で、セキュリティ信号出力処理を実行する。具体的には、枠用外部集中端子基板21を通じてホールコンピュータHCに対してセキュリティ信号が出力されるようにするための処理を行う。
続くステップS502でCPU20aは、LEDコモンポート、すなわち設定・性能表示器97としてのLEDのコモンポートに0を出力する処理を実行した上で、ステップS503で7セグデコードテーブルから表示用データを取得する処理を実行する。すなわち、設定値Vdに基づき設定値Ve(「1」「2」「6」)の表示用データを取得する処理である。
なお、ステップS502でLEDコモンポートに0を出力した場合には設定・性能表示器97が表示OFF状態(無表示状態)となるが、その意義については後述する。
図12は、7セグデコードテーブルの例を示し、図13は設定・性能表示器97におけるセグメント構成とセグメントの表示パターンとの関係を例示した図である。
7セグデコードテーブルは、主制御部20のROM20bに格納されている。
本例では、設定・性能表示器97における7つのセグメントが図13Aに示すように0~6の数値によりナンバリングされている。設定・性能表示器97には、これら0~6の7つのセグメントと共にDP(ドットポイント)の表示部(発光部)も設けられており、該DPの表示部には「7」のナンバリングがされている。
7セグメントの表示用データとしては、数値「0」を表す「SEG_0」の表示用データから、数値「9」を表す「SEG_9」の表示用データまでの計10個が用意されている。表示用データは、1バイト(8ビット)のデータとされ、最下位ビット位置を1番目のビット位置とすると、1番目のビット位置がセグメント「0」の表示/非表示(発光/非発光)を表す。以降、同様に2番目のビット位置がセグメント「1」、3番目のビット位置がセグメント「2」、4番目のビット位置がセグメント「3」、5番目のビット位置がセグメント「4」、6番目のビット位置がセグメント「5」、7番目のビット位置がセグメント「6」の表示/非表示をそれぞれ表す。
また、本例における表示用データは、8番目のビット位置がDP(「7」)の表示/非表示を表すものとされている。
図12に示す7セグデコードテーブルは、設定値Vd=00H、01H、02Hの各値から、それぞれ対応する表示用データ、具体的にはSEG_1、SEG_2、SEG_6の表示用データが取得されるように構成されている。
具体的に、本例の7セグデコードテーブルにおいては、図中「6203」~「6208」のアドレス領域のように、少なくとも00H~05Hの各設定値Vdごとの表示用データを格納する領域が確保されており、この領域における最上層部の領域(番号が最も若いアドレスの領域)に設定値Vd=00Hに対応した表示用データSEG_1(図中「06」)が、2番目の領域に設定値Vd=01Hに対応した表示用データSEG_2(図中「5B」)が、3番目の領域に設定値Vd=02Hに対応した表示用データSEG_6(図中「7D」)が格納されている。
なお、本例では、設定値Vd=03Hに対応する4番目の領域、設定値Vd=04Hに対応する5番目の領域、及び設定値Vd=05Hに対応する6番目の領域には、表示用データとして「00」が格納されているが、その意義については改めて説明する。
また、本例の7セグデコードテーブルには、7番目の領域に設定値エラーを表す「E」の表示を行うための表示用データSEG_E(「79」)が格納されているが、これにより、設定値Vdが使用範囲Ru外の値である等、設定値Vdが異常な値を示す場合に対応して設定・性能表示器97を通じた設定値エラーの報知を行うことが可能とされている。
説明を図11に戻す。
CPU20aは、ステップS503の処理によって7セグデコードテーブルから取得した表示用データを、ステップS504で設定・性能表示器97に出力する処理を行う。
続くステップS505~S508の処理は、設定・性能表示器97における設定値Veの表示用LEDをダイナミック点灯(間欠的な点灯)させるための処理となる。具体的に、ステップS505でCPU20aは、LEDカウンタを1インクリメントし、続くステップS506でLEDカウンタの0,1ビット目(下位2ビット)が「11」であるか否かを判定する。ここで、LEDカウンタの下位2ビットが「11」となるのは、ステップS505のインクリメント処理が4の倍数回行われたときである。
ステップS506において、LEDカウンタの1,0ビット目が「11」であれば、CPU20aはステップS507に進み、LEDコモンポートに設定値表示用のセグを指定するデータを出力し、ステップS508の表示用タイマカウント処理を実行する。ステップS507の出力処理が実行されることで、設定・性能表示器97においてはステップS504で出力した表示用データに基づく設定値Veの表示が行われる。そして、この表示状態は、ステップS508の表示用タイマの時間分(本例では4ms)、継続されることになる。
図11に示す出力管理処理は、ステップS508のタイマカウント処理に続くステップS509の処理の実行に応じて終了となり、処理は図10に示すステップS414に進むことになるが、この際、設定キーOFF且つ変更スイッチがONであれば、ステップS413の出力管理処理が繰り返される。上述のようにステップS502ではLEDコモンポートに0が出力されるので、先のステップS507の処理で開始された設定値表示用のLEDの点灯状態は該ステップS502の実行により解除される。そして、ステップS505ではLEDカウンタが1インクリメントされるため、ステップS506ではLEDカウンタの0,1ビット目が「11」でないと判定され、ステップS507の出力処理はパスされてステップS508のタイマカウント処理が実行される。つまり、ステップS507の処理が実行されて設定値表示用のLEDが少なくとも4msの期間点灯された後は、LEDカウンタの0,1ビット目が再度「11」となるまでの間、つまり本例では少なくとも4ms×3=12msの間、該LEDが消灯状態とされるものである。
このようにして、設定値表示用のLEDを所定の周期で間欠的に点灯させるダイナミック点灯が実現される。
図11において、CPU20aはステップS508のタイマカウント処理を実行したことに応じ、ステップS509で入力データ作成処理を実行する。
この入力データ作成処理は、例えば主制御側タイマ割込み処理(図18)におけるステップS902の同処理を呼び出して実行する。後述するように、該入力データ作成処理で作成される入力データには、設定値Veの順送り操作の有無を表すRAMクリアスイッチ98の入力データや、設定変更の完了操作の有無を表す設定キースイッチ94の入力データが含まれている。
図10を参照して分かるように、設定変更の完了操作の有無の判定(S414)や設定値Veの順送り操作の有無の判定(S415)は、ステップS413の出力管理処理の後に実行されるものであり、このステップS509の入力データ作成処理を実行しておくことで、これら判定処理で必要とされるデータを予め得るようにしている。
(RAMクリア処理)

図14は、図5に示したRAMクリア処理(S116)のフローチャートである。
先ず、CPU20aはステップS601で、領域内RAM初期化処理を実行する。このステップS601の初期化処理は、RAM20cにおけるワーク領域を含む所定領域(使用領域)内の値を初期化(クリア)する処理となる。但し、このステップS601の初期化処理では、ワーク領域における設定値Vdの格納領域については初期化の対象外とされている。
なお、上述した性能情報については、RAM20cにおける使用領域外の領域(詳細については図21を参照して後述する)に格納されており、従ってステップS601の初期化処理ではクリアされない。
RAMクリア処理でクリア対象となるのは、通常の遊技進行の際に必要な各種のフラグやタイマやカウンタ等のRAM領域(通常データ格納領域)のデータである。これらのデータには、例えば次のようなものがある。すなわち、遊技状態指定に係るデータ(通常状態、確変状態、時短状態、潜確状態など、現在の遊技状態を特定する遊技状態フラグ)、当り遊技中であるか否かを指定するフラグ(条件装置作動フラグ)、当り遊技の実行に係る各種データ(現在のラウンド数、最大ラウンド数等)、大当り抽選結果に係るデータ(大当り判定フラグ:当落抽選結果情報、特別図柄判定データ:図柄抽選結果情報)、作動保留球に関する保留データ(作動保留球数、大当り抽選に利用される各種乱数値、補助当り抽選に利用される各種乱数値、変動パターン用乱数)、特別図柄動作ステータス、遊技進行を管理するタイマ(特別図柄役物動作タイマ)、スイッチ・センサ類に係る入出力データ、入賞口の入賞球数をカウントする各種の入賞カウンタ、電サポ状態の有無を指定するフラグ(開放延長フラグ)、電サポの残余回数をカウントする電サポ回数カウンタ、高確率状態の残余回数をカウントするカウンタ(特図確変回数カウンタ、普図確変回数カウンタ)、各種エラーフラグ(RAMエラーフラグを除く)、及び払出関連のデータ等である。何れにしても、RAMクリア処理が実行されると、特定のデータ(設定値Vdや性能情報)以外のすべてのデータが初期状態に設定される。
ここで、先の図5の説明から理解されるように、設定変更処理(S115)が実行された場合には、ステップS116に処理が進められてRAMクリア処理が実行される。
設定変更処理では設定値Vdが変更され得る。設定値Vdが変更された場合、RAM20cのワーク領域における設定値Vd以外の格納値が、変更後の設定値Vdに対して整合しない状態となる可能性がある。このため、設定変更処理を行った場合は、RAMクリア処理を実行することで、ワーク領域における設定値Vd以外の領域をクリア(初期化)するものとしている。
ステップS601の初期化処理を実行したことに応じ、CPU20aはステップS602でRAMクリア報知タイマに30sをセットする共に本特図に外れ目をセットするための処理を実行する。RAMクリア報知タイマは、後述する図17のステップS803の処理で送信されるRAMクリアコマンドに応じて演出制御部24が実行するRAMクリア報知の時間を設定するためのタイマであり、本例では30sを設定する。また、ここで言う本特図とは、例えば上述した特図1及び特図2のことを意味する。
ステップS602に続くステップS603でCPU20aは、前述したシステム動作ステータスが「2」であるか否かを判定する。すなわち、起動後にステップS115の設定変更処理を経由したか否かを判定する。
システム動作ステータスが「2」であれば、CPU20aはステップS604~S612により、設定変更処理を経由した場合に対応した処理を実行する。
システム動作ステータスが「2」でなければ、CPU20aは、ステップS613に処理を進めてRAMクリアコマンドの下位バイトデータをレジスタに記憶し、ステップS116のRAMクリア処理を終える。
なお、上記のようにコマンドの下位バイトデータをレジスタに記憶する動作は、後述するメインループ前処理(図17)のステップS804で送信するコマンド種別を指定する動作として機能する。
設定変更処理を経由した場合、CPU20aは、先ずステップS604でシステム動作ステータスを「0」にリセットした上で、ステップS605で設定変更終了コマンド(BA77H)の取得処理を実行し、続くステップS606のコマンド送信処理により設定変更終了コマンドを演出制御部24に送信する。
ステップS606に続くステップS607~S612の処理は、設定・性能表示器97における設定値Veの表示に係る処理となる。
先ず、ステップS607でCPU20aは、LEDコモンポートに設定値表示用のセグを指定するデータを出力し、続くステップS608で7セグデコードテーブル(図13参照)から設定値Vdに対応する表示用データを取得し、ステップS609で表示用データにDP付加する処理、すなわち表示用データの7番目のビット位置の値を「1」とする処理を実行した上で、ステップS610の出力処理により表示用データを設定・性能表示器97に出力する。
ステップS611に続くステップS612、S613の処理は、設定・性能表示器97における設定値Ve及びDPの表示状態を所定時間(本例では1s)継続させるための処理となる。具体的に、CPU20aはステップS612の表示用タイマカウント処理(例えば先のステップS508(図11参照)と同様の4ms周期のタイマカウント処理)を、ステップS612で1sが経過したと判定するまで繰り返し実行する。
ステップS612で1sが経過したと判定した場合、CPU20aはステップS613の記憶処理を実行し、ステップS116のRAMクリア処理を終える。
これまでの説明から理解されるように、ステップS115の設定変更処理が実行され、設定変更の完了操作が行われた場合(図10のステップS412:Y)には、ステップS116のRAMクリア処理において設定変更終了コマンドが演出制御部24に送信されて(S605、S606)、設定変更が終了した旨の通知が行われる。
本例の場合、設定変更終了コマンドは、設定変更が終了した旨を演出制御部24に通知するものであって、設定変更処理で設定された設定値Veを通知する機能までは与えられていない。
本例では、設定変更処理で設定された設定値Veは、後述する図17(メインループ前処理)のステップS808の処理で送信される設定値コマンドによって演出制御部24に通知される。
(設定確認処理)

図15は、ステップS109の設定確認処理を示したフローチャートである。
設定確認処理は、設定中の設定値Veを確認表示するための処理となる。
図15において、CPU20aは先ずステップS701で、不正情報タイマに30sをセットする。不正情報タイマは、前述したセキュリティ信号のホールコンピュータHCに対する出力時間を管理するためのタイマである。
続くステップS702で現在の設定値情報を取得する処理を行う。すなわち、RAMのワーク領域に格納されている設定値Vdを取得する。
ステップS702に続くステップS703でCPU20aは、設定値オフセット変換テーブルから設定値データを取得する処理を実行する。
図16は、主制御部20のROM20bに格納された設定値オフセット変換テーブルの例を示している。
設定値オフセット変換テーブルは、設定値Vd(00H~02H)を設定値Ve(「1
」「2」「6」)の識別データ(「SETNUM1」~「SETNUM6」)に変換するためのテーブルとして機能する。
本例の場合、設定値オフセット変換テーブルは、図中「6215」~「6220」のアドレス領域のように、少なくとも00H~05Hの各設定値Vdごとに設定値Veの識別データを格納する領域が確保されており、この領域における最上部の領域に設定値Vd=00Hに対応した設定値Ve「1」の識別データ(図中「00」)が、2番目の領域に設定値Vd=01Hに対応した設定値Ve「2」の識別データ(図中「01」)が、3番目の領域に設定値Vd=02Hに対応した設定値Ve「6」の識別データ(図中「05」)が格納されている。
なお、本例では、設定値Vd=03Hに対応する4番目の領域、設定値Vd=04Hに対応する5番目の領域、及び設定値Vd=05Hに対応する6番目の領域には、設定値Veの識別データとして「00」が格納されているが、その意義については改めて説明する。
図15において、CPU20aはステップS703の取得処理により、上記の識別データを「設定値データ」として取得する。
ステップS703の取得処理を実行したことに応じ、CPU20aはステップS704で設定確認中コマンド(BA6xH)の取得処理を実行し、続くステップS705のコマンド送信処理により、設定確認中コマンドを演出制御部24に送信する。
CPU20aはステップS704の取得処理において、設定確認中コマンドにステップS703で取得した設定値データ、すなわち現在設定値中の設定中の設定値Veを識別するための識別データを含ませる処理を行う。
これにより、ステップS705のコマンド送信処理が実行されることで、演出制御部24に設定確認中である旨と現在の設定値Veが通知されることになる。
ステップS705に続くステップS706、S707の処理は、現在の設定値Veを設定・性能表示器97に表示させるための処理となる。
具体的に、CPU20aは先ずステップS706で、設定値とDPのデータを取得する処理を実行する。すなわち、RAM20cのワーク領域に格納されている現在の設定値Vdと、設定・性能表示器97におけるDPのデータ(「1」)とを取得する処理を実行する。その上で、ステップS707の出力管理処理を実行する。このステップS707の出力管理処理は、図11に示したステップS413の出力管理処理と同じ処理である。これにより、この場合の設定・性能表示器97には、現在の設定値Veを表す値とDPの表示が行われる。
ステップS707に続くステップS708でCPU20aは、設定キーOFF(設定キースイッチ94がOFF)であるか否か、つまり設定確認表示の終了指示操作が行われたか否かを判定し、設定キーOFFでなければステップS707の出力管理処理を再度実行する。これにより、ステップS705で設定確認中コマンドが送信された後は、ステップS708の処理により設定確認表示の終了指示操作が行われるまで待機するようにされ、待機中はステップS707の処理によって設定・性能表示器97に現在の設定値Ve及びDPを表示させる処理を継続して行うようにされる。
ステップS708で設定キーOFFであると判定した場合、CPU20aはステップS709で設定確認終了コマンド(BA67H)の取得処理を実行し、続くステップS710のコマンド送信処理により設定確認終了コマンドを演出制御部24に送信し、ステップS109の設定確認処理を終える。
(メインループ前処理)

図17は、ステップS119のメインループ前処理のフローチャートである。
メインループ前処理において、CPU20aは先ずステップS801で、イニシャライズコマンドの取得処理を実行し、続くステップS802のコマンド送信処理によりイニシャライズコマンドを演出制御部24に送信する。イニシャライズコマンドは、役物としての可動体を動作させる可動体役物モータ80cのイニシャライズ(原点復帰)指示を行うためのコマンドである。
ステップS802に続くステップS803でCPU20aは、取得した下位バイトコマンドから送信コマンドデータを取得する処理を行い、取得したコマンドデータを、ステップS804のコマンド送信処理により演出制御部24に送信する。
ここで、ステップS803の取得処理では、起動後に経由してきた処理の過程で下位バイトデータがレジスタに格納されたコマンドのデータが取得される。具体的に、ステップS116のRAMクリア処理を経由した場合(設定変更処理とRAMクリア処理の双方が行われた場合、又は設定変更処理が行われずRAMクリア処理のみが行われた場合)には、RAMクリアコマンド(BA02H)のデータが取得される。一方、ステップS111のバックアップ復帰処理が行われた場合(設定確認処理とバックアップ復帰処理の双方が行われた場合、又は設定確認処理が行われずバックアップ復帰処理のみが行われた場合)には停電復帰表示コマンド(OB03H)のデータが取得される。
これにより演出制御部24は、RAMクリア処理が行われた場合、バックアップ復帰処理が行われた場合でそれぞれ異なる処理を実行するようにされている。
ステップS804に続くステップS805でCPU20aは、特図1、特図2の保留個数を送信するための処理を実行する。ここで、このステップS805の処理では、ステップS111のバックアップ復帰処理が行われた場合に特図1、特図2の保留個数を演出制御部24に送信し、ステップS116のRAMクリア処理が行われた場合には該保留個数の送信は行わない(保留個数の情報がクリアされているため)。
ステップS805に続くステップS806~S808の処理は、現在の設定値Veを設定値コマンドにより演出制御部24に通知するための処理となる。
先ず、ステップS806でCPU20aは、現在の設定値情報を取得するための処理として、RAM20cのワーク領域に格納されている設定値Vdを取得する処理を行い、続くステップS807で設定値オフセット変換テーブル(図16)から設定値データを取得する処理を実行する。具体的には、ステップS806で取得した設定値Vd(00H~02H)に対応する設定値Ve(「1」「2」「5」)の識別データを取得する。
そして、CPU20aは続くステップS808で設定値コマンド(F6xxH)の取得処理を行い、ステップS809のコマンド送信処理により設定値コマンドを演出制御部24に送信する。
ステップS808の取得処理では、ステップS807で取得した識別データを含む設定値コマンドを取得する。このような設定値コマンドにより、演出制御部24に現在の設定値Veを通知することができる。
ステップS809のコマンド送信処理を実行したことに応じ、CPU20aはステップS810で内部機能レジスタの設定処理、すなわちハードウェア乱数のカウント機能等、各種機能の初期設定のためのレジスタ設定処理を実行し、ステップS811で性能表示モニタ点灯用タイマを5sにセットする処理を実行する。性能表示モニタ点灯用タイマは、設定・性能表示器97の起動時における動作確認点灯動作(本例では5秒間の点滅動作)について、その動作時間を管理するためのタイマである。
さらに、ステップS811に続くステップS812でCPU20aは、システム動作ステータスを「0」にリセットし、ステップS813で払出制御基板29に対する発射許可信号をONとする。これに応じ払出制御基板29は、発射許可状態であると判断し、上記許可信号を発射制御基板28に対して出力し、発射装置32による遊技球の発射動作を許容する。これにより、発射操作ハンドル15による遊技球の発射が可能になる。
なお、ここでは、主制御部20からの発射許可信号を払出制御基板29が受けて発射動作を許容する構成、つまり、主制御部20からの発射許可の指示情報が、払出制御基板29を通じて間接的に発射制御基板28に送られる構成を例示したが、本発明はこれに限らず、例えば、主制御部20による発射許可信号を直接的に発射制御基板28に出力する構成とすることもできる。
CPU20aは、ステップS813の処理を実行したことに応じ、ステップS119のメインループ前処理を終える。
(設定値表示用データテーブルと設定値変換テーブルの利点)

ここで、本実施形態では、図16に示した設定値オフセット変換テーブルのように、主制御部20のROM20bには、設定値を参照して選択される複数の設定値関連情報を含むデータテーブルが格納されている。
そして、このデータテーブルには、主制御部20が設定変更処理(図10参照)により設定可能な設定値Vd(「00H」~「02H」)を参照した場合に選択される設定値関連情報である第一設定値関連情報と、主制御部20が設定変更処理により設定不能な設定値を参照した場合に選択される設定値関連情報である第二設定値関連情報とが含まれている。具体的に、第一設定値関連情報としては、図16に示す設定値オフセット変換テーブルにおけるアドレス「6215」「6216」「6217」にそれぞれ格納された「00」「01」「05」が該当し、第二設定値関連情報としては、アドレス「6218」「6219」「6220」にそれぞれ格納された「00」「00」「00」が該当する。
さらに、データテーブルにおいては、第一設定値関連情報として、当選確率が最も低い段階を表す設定値Veに関する特定情報(つまりアドレス「6215」における「00」)が、少なくとも記憶され、また第二設定値関連情報として、特定情報と同じ情報が記憶されている。
設定値Vdが設定不能な値であったときは、RAM20cに格納される設定値Vdを最低段階を表す値に書き替えることが考えられる。
しかし、書き替え後に改竄される等した場合、設定不能な設定値Vdに基づきデータテーブルから対応する情報が取得されて、設定不能な設定値に応じた動作が実現される虞がある。
上記構成によれば、データテーブルから設定不能な設定値Vdに応じた情報を取得することが不能とされるため、不正行為が成立してしまうことの防止を図ることができ、遊技の公平性を高めることができる。
また、本実施形態では、上記した特定情報として0が記憶されている。
これにより、設定値関連情報に特定情報=0を書き込むという簡易な手法により、設定値の改竄による不正行為の成立防止を図ることが可能とされる。すなわち、遊技の公平性を簡易な手法により高めることができる。
また、本実施形態では、図12に示した7セグデコードテーブルについても、主制御部20が設定変更処理により設定可能な設定値Vdを参照した場合に選択される設定値関連情報である第一設定値関連情報(アドレス「6203」~「6205」)と、主制御部20が設定変更処理により設定不能な設定値を参照した場合に選択される設定値関連情報である第二設定値関連情報(アドレス「6206」~「6208」)とが含まれるようにしている。そして、7セグデコードテーブルでは、第二設定値関連情報として0を記憶させている。
これにより、不正行為や何らかの誤動作等に伴い、設定変更処理で設定不能な設定値Vdによりデータテーブルが参照されたとしても、設定値の表示手段(本例では設定・性能表示器97)に設定値表示が行われないようにすることが可能とされる。具体的に本例では、表示用データとして「00」のデータ、すなわち「00000000」が取得されるので、設定値表示用の7セグにおける「0」~「6」の全てのセグが非表示とされ、結果、数値表示が行われないことになる。
従って、設定値の誤表示防止を図ることができる。
[4-2.主制御側タイマ割込み処理]

図18のフローチャートを参照して、主制御側タイマ割込処理について説明する。
主制御側タイマ割込処理は、CTCからの一定時間(4ms程度)ごとの割込みで起動され、主制御側メイン処理実行中に割り込んで実行される。
図18において、CPU20aは、タイマ割込みが生じると、先ずはステップS901の電源チェック・バックアップ処理を実行する。この電源チェック・バックアップ処理では、主に、電源基板から供給されている電源レベルを監視し、電断が生じる等の異常が発生した場合、電源復帰時に支障なく遊技を復帰できるように、電断時における所定の遊技情報をRAM20cに格納するバックアップ処理等が行われる。
(電源チェック・バックアップ処理)

図19は、ステップS901の電源チェック・バックアップ処理を示したフローチャートである。
電源チェック・バックアップ処理において、CPU20aはステップS1001で、電源基板から出力される電源異常信号を2回読み込み、続くステップS1002で双方の読み込み値が一致しているか否かを判定する。双方の値が一致していない場合は、ステップS1001に戻って再度、電源異常信号を2回読み込む。
ステップS1002において、双方の値が一致していれば、CPU20aはステップS1003で、電源異常信号が正常レベルか否か(電源異常信号がOFF=正常レベル、ON=正常レベルでない)を判定する。
電源異常信号が正常レベルであれば(ステップS1003:OFF)、CPU20aはステップS1004でバックアップフラグをOFF状態とし、続くステップS1005で電源異常確認カウンタをクリアし、ステップS901の電源異常チェック処理を終える。すなわち、電源異常信号が正常レベルであることが確認された場合は、以降で説明するバックアップ処理は行われずタイマ割込み処理が継続される。
一方、ステップS1003で電源異常信号が正常レベルでなかった場合(ステップS1003:ON)、CPU20aはステップS1006で電源異常確認カウンタの値を1インクリメントした上で、ステップS1007で電源異常確認カウンタの値が所定の閾値(閾値=2以上の自然数:例えば「2」)以上であるか否かを判定する。
電源異常確認カウンタの値が閾値以上でなければ、CPU20aはステップS901の電源異常チェック処理を終える。すなわち、電源異常信号が正常レベルでない状態が検知されたが連続的な検知でない場合には、バックアップ処理は行われずタイマ割込み処理が継続される。
一方、電源異常確認カウンタの値が閾値以上であれば、CPU20aはステップS1008~S1011として示すバックアップ処理を行う。
具体的に、CPU20aは先ず、電源異常確認カウンタの値をクリアし(S1108)、発射許可信号をOFFとした上で(S1009)、バックアップフラグをONとする(S1010)。
さらに、CPU20aは、電源断コマンドを演出制御部24に送信し(S1011)、ステップS1012に処理を進める。
ステップS1012でCPU20aは、RAMプロテクトを有効とし、禁止領域を無効に設定する処理を行う。
RAMプロテクトとは、誤作動や誤操作などによるRAM20cに対する書き換え防止機能である。RAMプロテクトを有効に設定することで、RAM20cからのデータ読み出しのみが可能とされてデータの書き込みが不能な状態となる。
また、禁止領域は、IAT(指定エリア外走行禁止)機能における指定エリアに対応した領域であり、禁止領域を無効に設定することで、以降はIATリセットが発生しないようになる。
ステップS1012に続くステップS1013でCPU20aは、出力ポートの値をクリアし、さらに続くステップS1014でタイマ割込み処理を停止すると共に、自身を割込み禁止状態に設定し、無限ループ処理に移行する。
この無限ループ中において、CPU20aはWDTによりリセットされ、また動作電源の喪失により動作停止状態に移行する。
説明を図18に戻す。
図18において、ステップS901の電源チェック・バックアップ処理を終えると、CPU20aはステップS902で入力データ作成処理を実行する。具体的には、各種センサやスイッチから入力情報(ON/OFF信号や、立ち上がり状態(ONエッジ、OFFエッジ))に基づき、入力データ作成する。
ここでの入力情報とは、例えば上始動口センサ34a、下始動口センサ35a、普通図柄始動口センサ37a、大入賞口センサ52a、一般入賞口センサ43a、OUT監視スイッチ49aなどの入賞検出スイッチから出力されるスイッチ信号のON/OFF情報(入賞検出情報)や、設定キースイッチ94、RAMクリアスイッチ98等の設定値Veの設定操作に係るスイッチから出力されるスイッチ信号のON/OFF情報(操作情報)や、払出制御基板29からの状態信号(前扉開放センサ61や満杯検出センサ60のON/OFF情報)等である。これにより、アウト口や各入賞口において遊技球が検出されたか否かが割込みごとに監視される。
ステップS902の入力データ作成処理を終えると、CPU20aはステップS903で、遊技動作制御に用いられるタイマを管理するタイマ管理処理を実行する。ここでは、遊技機1の遊技動作制御に用いる各種タイマの値について更新(減算処理)が行われる。
次いで、CPU20aはステップS904で、入力管理処理を行う。この入力管理処理では、入力データ作成処理(S902)で作成された入力データに基づき、入賞カウンタやOUT球監視カウンタの値などを更新する。「入賞カウンタ」とは、各入賞口ごとに対応して設けられ、入賞した遊技球数(入賞球数)を計数するカウンタである。またOUT球監視カウンタは、アウト口49から排出される遊技球(アウト球)を計数するカウンタである。
ステップS904の入力管理処理は、各種入賞口センサからの入力信号(検出信号)を管理する入力管理手段として機能する。
ステップS904に続くステップS905でCPU20aは、設定異常チェック処理を実行する。
図20は、ステップS905の設定異常チェック処理を示したフローチャートである。
図20において、CPU20aはステップS1101で、設定値エラーフラグを確認する。設定値エラーフラグは、設定値Vdの異常が認められた場合に以下で説明するステップS1103の処理によりセットされる(ONされる)フラグであり、本例では「5AH」がON状態を意味する。
ステップS1101において、設定値エラーフラグが「5AH」(ON状態)であれば、CPU20aはステップS905の設定異常チェック処理を終える。すなわち、ステップS1101で設定値エラーフラグがONと判定されるということは、既に後述するステップS1104で設定値異常コマンド(演出制御部24に設定エラー報知の実行を指示するコマンド)の送信が実行されている状態であるため、設定値エラーフラグを再度送信することなく、設定異常チェック処理を終える。
一方、ステップS1101で設定値エラーフラグが「5AH」でない(OFFである)と確認された場合、CPU20aはステップS1102で設定値Vdが正常範囲内の値(0~2の範囲内)であるか否かを判定する。具体的には、RAM20cのワーク領域に格納されている設定値Vdを取得し、値が「00H」~「02H」の範囲にあるか否かを判定する。
設定値Vdが正常範囲内の値であれば、CPU20aはステップS905の設定異常チェック処理を終える。
設定値Vdが正常範囲内の値でなければ、CPU20aはステップS1103に進んで設定値エラーフラグをセット(ON状態)とし、続くステップS1104で設定値Vdに異常が生じた旨を表すための設定値異常コマンドを演出制御部24に送信し、設定異常チェック処理を終える。
ここで、設定値エラーフラグは、後述する図25のステップS1308(入賞時の設定エラー判定)をはじめとして、図27におけるステップS1501(変動開始時の大当り乱数判定を行う際の設定エラー判定や、図30におけるステップS1701(変動開始時の変動パターン抽選を行う際の設定エラー判定)において用いられる。
ここで、上記の設定値異常コマンドを受け演出制御部24は、設定値Veのデータ異常を報知するための処理を行う。例えば、液晶表示装置36に「RAM異常です。係員を呼んで下さい。」等の表示を含む画像を表示させる処理を行う。
遊技機1において、設定エラー(設定値エラー)は、設定変更操作を行うことで解除可能とされている。
説明を図18に戻す。
CPU20aはステップS905の設定異常チェック処理を終えると、ステップS906でエラー管理処理を実行する。このエラー管理処理では、各種センサ類に係る入力データや払出制御基板29からの状態信号に基づき、エラー発生の有無の監視を行う。
エラーが発生した場合には、CPU20aはエラー処理として、エラーコマンドの送信が必要なエラー種別である場合には当該するコマンドを演出制御部24に送信する。演出制御部24がこのエラーコマンドを受けると、エラー種別に応じたエラー報知を実行する。また、CPU20aは発生中のエラーが解消された場合、エラー解除コマンドを演出制御部24に送信する。演出制御部24がこのエラー解除コマンドを受けると、実行中のエラー報知を終了させる。
次いで、CPU20aはステップS907で、各変動表示ゲームに係る乱数を定期的に更新するタイマ割込み内乱数管理処理を実行する。ここでは、乱数カウンタのカウント値をランダムなものとするために、特別図柄判定用乱数や補助当り判定用乱数などに対し、乱数の更新(割込み毎に+1加算)と、乱数カウンタが一周するごとに、乱数カウンタのスタート値を変更する処理を行う。なお内部抽選用乱数(大当り判定用乱数)は、乱数生成回路で生成されるので、ここで更新されることはない。
ステップS907に続くステップS908でCPU20aは、賞球管理処理を実行する。この賞球管理処理では、上記の入賞カウンタの確認を行い、入賞がある場合には、賞球数を指定する払出制御コマンドを払出制御基板29に送信する。払出制御基板29は、払出制御コマンドを受信した場合、これに含まれる賞球数情報に基づき遊技球払出装置19を制御し、指定された賞球数分の払い出し動作を実行させる。
次いで、CPU20aはステップS909で、普通図柄管理処理を実行する。この普通図柄管理処理では、普通図柄変動表示ゲームを実行させるために必要な処理を行う。ここでは、普通図柄始動口センサ37aにより遊技球が検出されたか否かを監視し、遊技球が検出された場合には補助当り抽選に必要な所定の遊技情報(補助当り判定用乱数など)を取得し(乱数取得処理)、その遊技情報を保留データ(普通図柄に関する作動保留球)として、最大保留球数を上限まで保留記憶する(保留記憶処理)。そして、普図に関する所定の変動表示開始条件が成立した場合、作動保留球に基づく補助当り抽選を行い、その補助当り抽選結果に基づく普通図柄の変動パターンの選択および普通図柄の停止表示態様(普通停止図柄)を決定する。またここでは、普通図柄を変動表示動作させるために、変動中であれば変動表示用のLED表示用データを作成し、変動中でなければ、停止表示用のLED表示用データを作成する。
さらに、CPU20aはステップS910で、普通電動役物管理処理を実行する。この普通電動役物管理処理では、普電開放遊技の実行に必要な処理を行う。具体的には、補助当り抽選の抽選結果が当りの場合に、普通電動役物ソレノイド41cに対するソレノイド制御用データの設定処理を行う。ここで設定されたソレノイド制御用データに基づき、普通電動役物ソレノイド41cに対して励磁信号が出力され、これにより、可動翼片47の開閉動作パターンが制御される。
次いで、CPU20aはステップS911で、特別図柄管理処理を実行する。この特別図柄管理処理では、主に、特別図柄変動表示ゲームにおける大当り抽選を行い、その抽選結果に基づいて、特別図柄の変動パターン(先読み変動パターン、及び変動開始時の変動パターン)や特別停止図柄の決定等、特別図柄変動表示ゲームに必要な処理が実行される。
次いで、CPU20aはステップS912で特別電動役物管理処理を実行する。この特別電動役物管理処理では、当り遊技を実行制御するために必要な設定処理を行う。具体的には、大当り抽選結果が大当りであった場合、その当り種別に対応した当り遊技(大当り遊技)を実行制御する。
具体的には、大入賞口ソレノイド52cに対するソレノイド制御用データの設定、ラウンド数のカウント(大当りの場合)、大入賞口50への最大入賞数及び開放時間の監視などを行う。また当り遊技が終了した場合は、当選時の遊技状態と当り種別とに基づく遊技状態の移行設定を行う。
またここでは、当り遊技の進行状況に応じて、複数の演出制御コマンドを送信する。大当り開始時、ラウンド遊技開始時、ラウンド遊技終了時、最大ラウンド数消化時などにおいて、それぞれ、大当り開始コマンド、ラウンド開始コマンド、ラウンド終了コマンド、大入賞口入賞コマンド、大当り終了コマンドを送信時期の到来に応じて送信する。上記大当り開始コマンドには、今回の当り種別情報が含まれ、演出制御部24側において、当り遊技中に展開される一連の当り演出シナリオを決定する際に利用される。また、大当り終了コマンドには、今回の当り種別とその当り当選時の遊技状態とに関する情報、つまり、当り遊技終了後の遊技状態を特定可能な情報が含まれ、演出制御部24側において、当り遊技後の演出モードを決定する際に利用される。従って、この「大当り終了コマンド」は、当り遊技終了後の遊技状態を特定し得ることから、遊技状態を指定する遊技状態指定コマンドとしての役割を担う。
上記ステップS912までの遊技進行のための処理を終えると、CPU20aはステップS913で、外部端子管理処理を行う。この外部端子管理処理では、枠用外部集中端子基板21を通して、遊技機1の動作状態情報をホールコンピュータHCや島ランプなどの外部装置に対して出力する。動作状態情報には、例えば、当り遊技発生情報、図柄変動表示ゲーム実行開始情報、入賞数・賞球数情報、エラー情報などの遊技情報がある。
次いで、CPU20aはステップS914で、LED管理処理を実行する。このLED管理処理では、普通図柄表示装置39a、特別図柄表示装置38a、38b、設定・性能表示器97などのLED表示器に対する制御信号(ダイナミック点灯データ)の出力制御を行う。普通図柄管理処理(ステップS909)、特別図柄管理処理(ステップS911)などで作成された表示用データに基づく制御信号は、このLED管理処理で対応する表示装置又は表示器に出力され、表示制御が行われる。これにより、特別図柄表示装置38a、38bにおける特別図柄や普通図柄表示装置39aにおける普通図柄の一連の変動表示動作(変動表示および停止表示)等が実現される。
ステップS914に続くステップS915でCPU20aは、全レジスタの値を退避させた上で、ステップS916の性能表示モニタ表示処理を行う。すなわち、設定・性能表示器97に前述した通常時比率情報としての値を表示させるための処理である。
先に触れたように本例の場合、通常時比率情報の値は全状態アウト球数が所定規定値に達するごとに演算し直されるものであり、設定・性能表示器97は、現在の通常時比率情報と前回の通常時比率情報(直近の演算し直しタイミングにおいて演算終了とされた通常時比率情報)とを表示可能とされている。このため、この場合のステップS916の表示処理では、設定・性能表示器97にこれら二種の通常時比率情報としての値を表示させる処理を行う。
なお、現在の通常時比率情報の値は、前述したメインループ処理(図11)におけるステップS604の処理で算出される値であり、前回の通常時比率情報の値は、RAM20cの所定領域に保存され、CPU20aは該保存値を読み出して設定・性能表示器97に表示させる。
次いで、CPU20aはステップS917で全レジスタの値を復帰させ、ステップS918でWDTのカウント値をクリアし、主制御側タイマ割込み処理を終える。
以上のタイマ割込み処理が終了すると、CPU20aは次のタイマ割込みが発生するまでの間、メインループ処理(S123)を実行する。
<5.領域内処理と領域外処理との間の処理移行について>
[5-1.使用領域、使用外領域について]

図21は、主制御部20におけるメモリに設定された領域(メモリ領域)についての説明図である。具体的には、ROM20b及びRAM20cとしての、CPU20aがアクセス可能なメモリに設定された領域についての説明図である。
CPU20aがアクセス可能なメモリには、第1のメモリ領域(図中の斜線部)と第2のメモリ領域(図中の梨地部)が設定されている。第1のメモリ領域は、CPU80aが遊技動作(ゲーム)の進行にあたって用いる所定のプログラム及びデータを配置するための領域として定められたものである。第2のメモリ領域は、第1のメモリ領域外に配置することが許可されたプログラム及びデータを配置するための領域として定められている。
本例において、第2のメモリ領域への配置が許可されているのは、前述した性能情報の管理や表示に係るプログラム及びデータとされている。具体的には、図9に示したメインループ処理(S120)における性能表示モニタ集計除算処理(S304)に係るプログラム及びデータや、図18に示した主制御側タイマ割込み処理における性能表示モニタ表示処理(S916)に係るプログラム及びデータ等である。
ここで、第1のメモリ領域は、遊技進行処理で使用可能とされた領域という意味で「使用領域」と呼ばれる。一方、第2のメモリ領域は、遊技進行処理以外の特定処理で使用可能とされた領域という意味で「使用領域外」の領域と呼ばれる。
なお以下、第2のメモリ領域としての「使用領域外」の領域については、「使用外領域」と表記することもある。また、以下の説明において、「領域内」「領域外」といったときは、特に断りがなければ、それぞれ「使用領域内」、「使用領域外」を意味するものとする。
図示のように、第1のメモリ領域、第2のメモリ領域のそれぞれには、プログラムを格納する制御領域、プログラムにより使用するデータを格納するデータ領域、及びプログラムによる処理の過程で生成される各種のフラグやタイマ値等を書き替え可能に格納するR/W領域(Read/Write領域)が設定されている。制御領域及びデータ領域はROM20b内の領域に相当し、R/W領域はRAM20c内の領域に相当する。
図22は、第1のメモリ領域と第2のメモリ領域とについて定められた規制について説明図である。
第1、第2のメモリ領域のそれぞれにおいて、制御領域におけるプログラムは、自身の領域内におけるR/W領域のデータを参照及び更新(記録)することが許可されている。一方、第1、第2のメモリ領域のそれぞれにおいて、制御領域におけるプログラムは、他方のメモリ領域におけるR/W領域のデータについて参照のみが許可され、更新については不許可とされている。例えば、第2のメモリ領域のプログラムが第2のメモリ領域内のR/W領域に記録したフラグについては、第1のメモリ領域内のプログラムは参照のみが可能とされて更新を行うことはできない。
なお、図示は省略したが、データ領域におけるデータについては、同一メモリ領域内のプログラムのみが参照を許可されている。すなわち、第1のメモリ領域内のプログラムが第2のメモリ領域内のデータ領域のデータを参照したり、第2のメモリ領域内のプログラムが第1のメモリ領域内のデータ領域のデータを参照するといったことは許可されていない。
[5-2.先行例における処理移行手法]

ここで、CPU20aが図5から図20を参照して説明した処理を実行する過程においては、領域内プログラムの処理を実行中に、領域外プログラムの処理が呼び出され(CALLされ)、領域外プログラムの処理の完了に応じて領域内プログラムの処理に復帰するという処理過程が存在する。すなわち、領域内と領域外との間の処理移行が存在する。このような処理移行の具体例としては、図9に示したメインループ処理(S120)において、ステップS302の乱数更新処理(領域内プログラムの処理)を経て、ステップS304の性能表示モニタ集計除算処理(領域外プログラムの処理)を実行した後、再びステップS302の乱数更新処理に遷移する処理過程等を挙げることができる。
ここでは先ず、上記のような領域内と領域外との間の処理移行の手法に関して、先行例としての手法を説明する。
図23は、先行例におけるCPU20aのレジスタ構成を示した図である。
図示のように先行例におけるCPU20aは、PC(プログラムカウンタ)レジスタ100、I(インタラプト)レジスタ101、及びR(リフレッシュ)レジスタ102を備えると共に、それぞれが複数のレジスタで成る表レジスタ103、裏レジスタ104を備えている。
表レジスタ103は、Qレジスタ105、A(アキュムレータ)レジスタ106、F(フラグ)レジスタ107、Bレジスタ108、Cレジスタ109、Dレジスタ110、Eレジスタ111、Hレジスタ112、Lレジスタ113、IXレジスタ114、IYレジスタ115、及びSP(スタックポインタ)レジスタ116を有する。
裏レジスタ104は、Q’レジスタ105’、A’レジスタ106’、F’レジスタ107’、B’レジスタ108’、C’レジスタ109’、D’レジスタ110’、E’レジスタ111’、H’レジスタ112’、L’レジスタ113’、IX’レジスタ114’、及びIY’レジスタ115’を有する。
これら各種のレジスタのうち、少なくともBレジスタ108からLレジスタ113や、B’レジスタ108’からL’レジスタ113’は汎用レジスタとされる。
図24及び図25を参照し、領域内と領域外との間の処理移行に係るプログラムの例を説明する。
図24は、主制御側メイン処理(図5)における主にステップS120のメインループ処理(特に割込み待ちの部分:図9参照)に対応した部分のプログラムを例示しており、図25は、領域外プログラムとしての、性能表示モニタ集計除算処理(S304)に係るプログラムを例示している。
確認のため、プログラムで用いられる各種命令のうち主要な命令について説明しておく。ここでの命令とは、アセンブリ言語におけるニーモニックによる命令を指す。
「DI」は、割込み禁止の命令であり、「EI」は割込み許可の命令である。
「PUSH」は、メモリ(RAM20c)のスタック領域へ指定したレジスタの値を積み上げる(退避させる)命令であり、「POP」はスタック領域の値を指定したレジスタに取り出す(書き込む)命令である。
「LD」はロード命令であり、「LD」の記述後における左辺で指定される場所に対し右辺で指定される場所の値を書き込む命令となる。例えば、「LD R,n」(ただし、Rはレジスタを指定する値、nはメモリ上のアドレスを指定する値を意味する)の記述は、Rで指定されるレジスタに対し、nで指定されるメモリ上のアドレスの値を書き込む命令となる。また、「LD n,R」の記述は、nで指定されるメモリ上のアドレスに対し、Rで指定されるレジスタの値を書き込む命令となる。
「CALL」は、プログラムの呼び出し命令であり、「RET」は、呼び出し元に処理を戻す命令である。
図24の下部(図中「ZANYO_1」)には、メインループ処理(S120)における割込み待ち処理のプログラムが示されている。図9を参照して分かるように、メインループ処理では、この割込み待ちの間に乱数更新処理(ステップS302)と性能表示モニタ集計除算処理が実行される。
先ず、割込み待ち処理では、DI命令により割込み禁止状態とする。ここで割込み禁止とするのは、次命令で実行される乱数更新処理の間に割込み処理が実行されてしまうことの防止を図るためである。また、後述する領域外プログラムの実行中に割込み処理が実行されてしまうことの防止を図る意味もある。領域外プログラムが実行されているときに、領域内プログラムとしての割込み処理のプログラムが実行されると、割込み処理のプログラムは、使用領域内のワークメモリにアクセスし、メモリを更新してしまう。すなわち、領域外プログラムの実行中に、領域内が更新されてしまうこととなるため、割込み処理を禁止するものである。
次いで、「CALL M_RNDJOB」の命令により、各種乱数の更新処理が呼び出され、実行される。
「CALL M_RNDJOB」の命令に次ぐ「PUSH AF」の命令により、Aレジスタ106、Fレジスタ107の値をメモリに退避させる。該命令を実行するのは、以降で説明する領域外プログラムにおいて「LD SP,n」を実行するとFレジスタ107の内容が変化するため、Fレジスタ107の内容を退避する必要があるためである。
上記の「PUSH AF」に次ぐ「CALL _SHKSHM」の命令により、領域外の性能表示モニタ集計除算処理が呼び出される。
図25に示すように、性能表示モニタ集計除算処理では、先ず、「LD SP,_ESTPNT」の命令により使用領域外のアドレスを指定するスタックポインタを設定する。そして、図中の「LD (_RBCBUF),BC」「LD (_RDEBUF),DE」「LD (_RHLBUF),HL」の命令により、Bレジスタ108からLレジスタ113の全レジスタ退避の処理を行う。
「LD (_RHLBUF),HL」後の各種命令により、性能情報としての値を演算するための処理が行われる。
図中、最終行の2行前から4行前までの「LD BC,(_RBCBUF)」「LD DE,(_RDEBUF)」「LD HL,(_RHLBUF)」の各命令により、全レジスタ復帰の処理が行われ、最終行の1行前の「LD SP,_ISTPNT2」の命令によりスタックポインタが復帰される。そして、最終行の「RET」命令により、呼び出し元に処理が戻される。すなわち、領域内プログラムの処理に復帰する。
上記の「RET」命令に応じて、図24の「CALL _SHKSHM」後の命令「POP AF」が実行される。この「POP AF」により、Aレジスタ106、Fレジスタ107の値が復帰される。
次いで、「EI」により割込み処理を許可状態とし、「JR ZANYO_1」により「ZANYO_1」の先頭に処理が戻り、割込み待ち処理としてのループ処理が実現される。
ここで、先行例においては、SP(スタックポインタ)レジスタ116が一つとされているため、領域内プログラムと領域外プログラムとでSPポインタ116を共用するものとされている。このため、領域内と領域外との間の処理移行の際に、「PUSH AF」や「POP AF」の処理を行うことが必要とされる。すなわち、領域内プログラムにおいて、領域外プログラムをCALLする際には、これら「PUSH AF」や「POP AF」の命令を必ず記述することを要する。
前述のように、使用領域は、遊技動作の進行に係るプログラムを配置する領域とされるが、近年、遊技動作の複雑化等に伴い、使用領域のプログラム容量やデータ容量は増加傾向にあり、使用領域が圧迫される傾向にある。このため、使用領域におけるプログラム容量の削減を図ることが要請されている。
[5-3.実施形態としての処理移行手法]

図26は、実施形態におけるCPU20aのレジスタ構成を示した図である。
図示のように実施形態のCPU20aは、PCレジスタ100、Iレジスタ101、及びRレジスタ102を備えると共に、第一レジスタバンク121、第二レジスタバンク122、及びIFF(割込み制御フラグ)レジスタ125を備えている。
ここで、レジスタバンクは、汎用レジスタを含む複数のレジスタで成るレジスタ群である。第一レジスタバンク121、第二レジスタバンク122はそれぞれメインレジスタ123とサブレジスタ124とを有しており、メインレジスタ123は、図23に示した表レジスタ103に対応するものであり、Qレジスタ105、Aレジスタ106、Fレジスタ107、Bレジスタ108、Cレジスタ109、Dレジスタ110、Eレジスタ111、Hレジスタ112、Lレジスタ113、IXレジスタ114、IYレジスタ115、及びSPレジスタ116を有している。
サブレジスタ124は、図23に示した裏レジスタ104に対応するものであり、Q’レジスタ105’、A’レジスタ106’、F’レジスタ107’、B’レジスタ108’、C’レジスタ109’、D’レジスタ110’、E’レジスタ111’、H’レジスタ112’、L’レジスタ113’、IX’レジスタ114’、及びIY’レジスタ115’を有している。
なお、メインレジスタ123はUレジスタ130を有しているが、このUレジスタ130については後に改めて説明する。
IFFレジスタ125は、割込み制御フラグIFFを格納するためのレジスタである。割込み制御フラグIFFは、割込み処理の許可/禁止の状態、すなわち割込み制御状態を管理するためのフラグである。本例では、割込み制御フラグIFFとしては「IFF1」と「IFF2」の2種が扱われる。これに対応し、IFFレジスタ125には割込み制御フラグIFF1、IFF2を個別に格納することが可能とされている。
ここで、割込み制御フラグIFF1、IFF2のうち、割込み制御状態の参照値として用いられるのはIFF1側のみであり、IFF2はIFF1の値を管理するために補助的に用いられる。
本実施形態では、図26に示すように第一レジスタバンク121と第二レジスタバンク122とを設けた上で、第一レジスタバンク121を領域内プログラムにより使用し、第二レジスタバンク122を領域外プログラムにより使用する。すなわち、領域内プログラムの処理から領域外プログラムの処理に移行する際には、使用するレジスタバンクを第一レジスタバンク121から第二レジスタバンク122に切り替える。逆に、領域外プログラムの処理から領域内プログラムの処理に移行する際には、使用するレジスタバンクを第二レジスタバンク122から第一レジスタバンク121に切り替える。
上記のように第一レジスタバンク121と第二レジスタバンク122とを設け、第一レジスタバンク121を領域内用、第二レジスタバンク122を領域外用として用いるようにしたことで、領域内プログラムと領域外プログラムとでそれぞれ専用のSPレジスタ116を使用することができるようになり、「PUSH AF」や「POP AF」を実行する必要がなくなる。従って、領域内プログラムについて、プログラム容量の削減を図ることができる。
また、本実施形態では、「CALL」「RET」に代替可能な命令として、「CALLEX」「RETEX」を採用する。
「CALLEX」は、領域内プログラムから領域外プログラムを呼び出す命令であり、具体的には、割込み処理の禁止命令(DI)、使用するレジスタバンクを切り替える(第一レジスタバンク121から第二レジスタバンク122への切り替え)命令、及び指定された領域外プログラムのCALL命令の各命令を単一命令として集約したものである。
「RETEX」は、領域外プログラムから領域内プログラムに復帰するための命令であり、具体的には、使用するレジスタバンクを切り替える(第二レジスタバンク122から第一レジスタバンク121への切り替え)命令、割込み制御状態(許可/禁止)をCALLEX命令の実行直前の状態に戻すための処理の実行命令、及び呼び出し元に処理を戻すRET命令の各命令を単一命令として集約したものである。
ここで、上記のように「CALLEX」によって割込み禁止の状態とし、「RETEX」により割込み制御状態をCALLEX命令の実行直前の状態に戻すことを可能とするために、「CALLEX」「RETEX」や「DI」「EI」の実行時において、それぞれ次のように割込み制御フラグIFFの更新を行うことが定められている。
図27は、割込み制御フラグIFFの更新ルールについての説明図である。
図示のように「DI」命令の実行時には、割込み制御フラグIFF1及びIFF2の双方に割込み禁止を表す「0」(禁止値)をセットする。一方、「EI」命令の実行時には、割込み制御フラグIFF1及びIFF2の双方に割込み許可を表す「1」(許可値)をセットする。
また、「CALLEX」命令の実行時には、割込み制御フラグIFF1に禁止値である「0」をセットし、割込み制御フラグIFF2については値を維持させる(つまり変化させない)。さらに、「RETEX」命令の実行時には、割込み制御フラグIFF1に対し割込み制御フラグIFF2の値を代入する。このとき、割込み制御フラグIFF2については値を維持させる。
上記のようなルールにより割込み制御フラグIFFが更新されることで、「CALLEX」命令の実行によって割込み禁止の状態が実現され、また、「RETEX」命令の実行により割込み制御状態がCALLEX命令の実行直前の状態に戻されることになる。
図24及び図25で例示した領域内と領域外との間の処理移行に係るプログラムに対し、「CALLEX」「RETEX」を適用した実施形態としてのプログラムを図28及び図29に例示する。
なお、図28、図29では、それぞれ図24、図25に示した各種命令のうち実施形態としての手法の適用により省略される命令をグレーアウトさせて示している。
前述のように、第一レジスタバンク121と第二レジスタバンク122を設けたことで、領域内プログラムにおいて、領域外プログラムの呼び出し時に必要とされていた「PUSH AF」、及び領域外プログラムからの復帰時に必要とされていた「POP AF」が不要となる。
これにより、領域内プログラムについて、プログラム容量の削減を図ることができる。
ここで、「CALLEX」は「DI」命令を含むため、場合によっては「DI」命令の削減効果(プログラム容量の削減効果)が得られることもある。図24の例では、領域外プログラムの呼び出し前に乱数更新処理が行われるプログラム構成であるため、乱数更新処理の前に「DI」命令が実行されて、割込み禁止状態のまま領域外プログラムの呼び出しが行われる。このようなケースは、そもそも領域外プログラムの呼び出しのために「DI」命令を実行することが不要なケースであるため、「CALLEX」の適用による「DI」命令の削減効果は得られない。しかしながら、割込み許可状態において、領域外プログラムを呼び出すプログラム構成が採られる場合もあり得る。そのようなケースでは、「CALL」による領域外プログラムの呼び出し前に「DI」命令が実行されることになるため、「CALLEX」の適用により、該「DI」命令を削減することができ、プログラム容量の削減効果を得ることができる。
なお、実施形態では、領域外用の第二レジスタバンク122を設けたことで、領域内プログラムから領域外プログラムへの移行の際に、レジスタの値の退避や復帰を行う必要がなくなる。このため、領域外プログラム(図29)においては、レジスタの値を退避させるための「LD (_RBCBUF),BC」「LD (_RDEBUF),DE」「LD (_RHLBUF),HL」の各命令や、退避させた値を復帰させるための「LD BC,(_RBCBUF)」「LD DE,(_RDEBUF)」「LD HL,(_RHLBUF)」の各命令、及び領域内のスタックポインタの値を復帰させるための「LD SP,_ISTPNT2」の命令を記述する必要がなくなる。
ここで、図28に例示したプログラムを参照して理解されるように、本実施形態では、領域内プログラムにおいて、「DI」命令を実行した後、「EI」命令を実行するよりも前に、「CALLEX」命令を実行している。これは、「EI」命令を「第一命令」、「DI」命令を「第二命令」、「CALLEX」命令を「第三命令」とすると、第二命令を実行した後、第一命令を実行するよりも前に、第三命令を実行していると換言できる。
領域外プログラムを実行するときは、割込み禁止状態とすることを要する。この前提に立てば、CALLEX(第三命令)実行前にEI(第一命令)を実行してしまうと、割込み禁止状態と割込み許可状態が頻繁に切り替わってしまうことになる。
具体的に、CALLEX前にEIを行う場合には、ループ処理内の最初のDIで割込み禁止状態→乱数更新処理実行→EIで割込み許可状態→CALLEXで割込み禁止状態→RETEXで割込み許可状態となる。すなわち、メインループ処理内での切り替え回数=3回となる。一方、CALLEX後にEIを行う実施形態の場合は、最初のDIから領域外プログラム実行→領域内プログラムに復帰までの間、継続して割込み禁止状態が維持され、その後、EIにより割込み許可状態に切り替わる。すなわち、メインループ処理内での切り替え回数=1である。
従って、CALLEX前にEIを行う場合には、制御状態が頻繁に切り替わり、制御の安定性が損なわれることになるが、CALLEX後にEIを行う実施形態によれば、制御状態の切り替わり回数を抑えることができ、制御の安定性向上を図ることができる。
また、上記した実施形態としての移行手法によると、PUSH、POPの処理が不要となるため、処理速度の向上を図ることができる。
図30、図31は、図18に示した主制御側タイマ割込み処理における領域外プログラムの呼び出しについてCALLEX、RETEXを適用した場合のプログラムを例示しており、図30は主制御側タイマ割込み処理のプログラム(領域内プログラム)を例示し、図31はステップS916の性能表示モニタ表示処理に対応したプログラム(領域外プログラム)を例示している。
なお、図30では図示の都合から、ステップS918のWDTクリア処理に対応した命令の図示は省略している。また、これら図30、図31を始めとして、以下で例示する図63までの各図においては、先の図28及び図29と同様、CALLEX、RETEXの適用により省略される命令をグレーアウトさせて示している。
図30において、領域外プログラムである性能表示モニタ表示処理の呼び出しにCALLEXではなくCALLの命令を採用した場合(つまり図23のレジスタ構成を採る場合)には、必要な命令は「PUSH AF」→「DI」→「CALL _SHYMT」→「POP AF」→「EI」→「RETI」となるが、CALLEXを採用する場合(図26のレジスタ構成を採る場合)には、必要な命令は「CALLEX _SHYMT」→「EI」→「RETI」となり、「PUSH AF」「DI」及び「POP AF」の命令の削減により、領域内プログラムについてのプログラム容量削減を図ることができる。
また、図31に示す性能表示モニタ表示処理のプログラムでは、先ず、「LD SP,_ESTPNT」の命令により使用領域外のアドレスを指定するスタックポインタが設定される。CALLやRETを採用する先行例の場合には、「LD SP,_ESTPNT」後の命令としてレジスタの値を退避させるための「LD (_RBCBUF),BC」「LD (_RDEBUF),DE」「LD (_RHLBUF),HL」の各命令が必要とされていたが、本実施形態ではこれらの命令が省略される。
図中、「RWMの初期判定」から「初期表示タイマー減算処理」までの各命令は、設定・性能表示器97に性能情報の値を表示させる処理を実現するための命令である。これらの命令の後、先行例では、退避させた値をレジスタに復帰させるための「LD BC,(_RBCBUF)」「LD DE,(_RDEBUF)」「LD HL,(_RHLBUF)」の各命令、及び領域内のスタックポインタを復帰させるための「LD SP,_ISTPNT2」の命令が必要とされていたが、本実施形態ではこれらの命令も省略される。
最終行の「RETEX」により、使用するレジスタバンクの第二レジスタバンク122から第一レジスタバンク121への切り替え、割込み制御状態の復帰(この場合は禁止状態の維持)、及び呼び出し元への処理の復帰が行われる。
なお、図30における最終行の1行前の「EI」命令は必須ではない。図30におけるCALLEX命令の実行直前における割込み制御状態が「割込み許可状態」であれば、図31に示すRETEX命令の実行により、領域内プログラムに復帰した際の割込み制御状態が「割込み許可状態」となるためである。
ここで、図29及び図31では、領域外プログラムの1行目において、「LD SP,_ESTPNT」の命令を実行する、すなわち、第二レジスタバンク122におけるSPレジスタ116に対して領域外プログラムで用いるスタックメモリのアドレス値(メモリ上の「ESTPNT」の格納値)を格納する処理を実行するものとしている。このことは、次のように換言できる。すなわち、領域内プログラムにおける「CALLEX」命令により領域外プログラムの第一アドレスを指定して呼び出す場合(図28の「CALLEX _SHKSHM」)と、第二アドレスを指定して呼び出す場合(図30の「CALLEX _SHYMT」)とがあり、領域外プログラムにおいて、第一アドレスが呼び出された場合と、第二アドレスが呼び出された場合の何れにおいても、第二レジスタバンク122のSPレジスタ116に共通のスタックメモリのアドレス情報(「ESTPNT」の格納値)を記憶させる命令(第五命令)を実行するというものである。
これにより、領域外プログラムで用いるスタックポインタの値を、領域外プログラムが呼び出されるごとにセットし直すことが可能とされる。
従って、仮に、或る領域外プログラムの実行後に第二スタックポインタの記憶値が何らかの不具合等により変化してしまっても、別の領域外プログラムが実行されたときに正しいスタックポインタの値をセットし直すことができ、領域外プログラムによるスタック処理の安定性を高めることができる。
なお、領域外プログラムの処理開始時にセットされているべきスタックポインタの値は「ESTPNT」としての固定の値であるため、領域外プログラムの処理の開始ごとに「LD SP,_ESTPNT」を実行することは必須ではない。具体的に、「LD SP,_ESTPNT」の命令は、遊技機の起動ごとに、少なくとも最初に領域外プログラムを実行する際にのみ実行されればよい。
例えば、図29の領域外プログラムが図31の領域外プログラムよりも先に実行されるのであれば、「LD SP,_ESTPNT」の命令は、図29の領域外プログラムでのみ実行されればよい。或いは、逆に、図31の領域外プログラムが図29の領域外プログラムよりも先に実行されるのであれば、「LD SP,_ESTPNT」は、図31の領域外プログラムでのみ実行されればよい。
このことは、次のように換言できる。すなわち、領域内プログラムにおいて、CALLEX命令を実行して領域外プログラムを呼び出す際に、領域外プログラムの第一アドレスを指定して呼び出す場合(図29又は図31の何れか一方の領域外プログラムを呼び出す場合)と、その後のタイミングにて、第二アドレスを指定して呼び出す場合(図29又は図31の何れか他方の領域外プログラムを呼び出す場合)とがあり、領域外プログラムにおいて、第一アドレスが呼び出された場合にのみ、第二スタックポインタに共通のスタックメモリのアドレス情報を記憶させるための命令(第六命令)を実行する、というものである。
上述のように領域外プログラムの処理開始時にセットされているべきスタックメモリのアドレス情報は固定のアドレス情報であるため、領域外プログラムとして第一アドレスのプログラムの後に第二アドレスのプログラムが実行される場合には、第二スタックポインタに対するアドレス情報の記憶処理は、先に実行される第一アドレスのプログラムにおいてのみ行われれば足る。
従って、上記のように第一アドレスが呼び出された場合にのみ第二スタックポインタに所定のスタックメモリのアドレス情報を記憶させる命令を実行することで、処理の効率化を図ることができる。
[5-4.プログラムの別例]

図32及び図33は、先の図28及び図29に示したプログラムの別例を示している。具体的には、メインループ処理(S120)において領域外プログラムを呼び出す部分に対応したプログラムの別例(図32)と、図32の処理により呼び出される領域外プログラムの別例(図33)をそれぞれ示している。
図34及び図35は、先の図30及び図31に示したプログラムの別例、すなわち、主制御側タイマ割込み処理のプログラムの別例(図34)と、該タイマ割込み処理で呼び出される領域外プログラムの別例(図35)を示している。
なお、図33、図35に示す領域外プログラムにおいては、第二スタックポインタ(第二レジスタバンク122におけるSPレジスタ116)にセットすべき値を格納するメモリ上のアドレスは、図29、図31の場合の「ESTPNT」ではなく、「@RWM2SP」と定義されている。
図33、図35における「LD SP,@RWM2SP」の命令を参照して分かるように、ここでは、領域外プログラムの実行ごとに第二スタックポインタに「@RWM2SP」の格納値としての共通のアドレス情報をセットする例を挙げているが、この場合も、先に実行される領域外プログラムにおいてのみ、第二スタックポインタに対するアドレス情報の記憶処理が行われるようにすることもできる。
図36から図53は、実施形態としての処理移行手法を回胴式遊技機(スロットマシン)における主制御部の処理に適用した場合のプログラムの例を示している。
図36、図38、図40、図42、図44、図46、図48、図50、及び図52は、回胴式遊技機の主制御部が実行する領域内プログラムの処理のうち、領域外プログラムの呼び出し命令を含む各種処理のプログラムの例を示している。具体的に、図36は電源投入時の初期設定処理、図38は遊技実行処理、図40は遊技メダルの投入やスタートレバーの操作に応じた処理、図42は遊技開始時のRMW設定処理、図44は役比モニタ表示関連情報更新処理、図46は設定変更処理、図48は条件装置信号出力処理、図50は遊技メダル投入処理、図52は遊技メダル投入エラー処理についてのプログラムを例示している。
図37、図39、図41、図43、図45、図47、図49、図51、及び図53は、上記した各種の領域内プログラムの処理におけるCALLEX命令で呼び出される領域外プログラムを例示しており、具体的に、図37は領域外ワークエリア処理3、図39は再遊技状態識別信号出力処理、図41は条件装置信号出力クリア処理、図43は条件装置信号出力処理、図45は役比モニタ制御処理、図47は領域外ワークエリア処理1、図49は条件装置信号出力監視処理、図51は滞留チェック処理、図53は領域外ワークエリア処理2についてのプログラムを例示している。
なお、ここで例示した領域内プログラムについて、例えば図36、図38、図40等に示される「(DI保証)」とは、少なくとも該(DI保証)が記述された行において割込み禁止状態であること保証されている(つまり、該行よりも前の何れかの行においてDI命令が実行されていることが保証されている)ことを意味する。
ここで例示した領域内プログラムのうち、図38、図40、図48に示す領域内プログラムは、「DI」命令を実行した後、「EI」命令を実行するよりも前に、「CALLEX」命令を実行する例に該当している。
これにより、割込み制御状態が頻繁に切り替わることの防止を図ることができ、制御の安定性向上を図ることができる。
特に、図48のプログラムでは、二つのCALLEX命令が連続して記述されているが、この場合において、仮に、「DI」命令を実行した後、「EI」命令を実行するよりも前に「CALLEX」命令を実行するものとはせず、「CALLEX」命令の実行前に「EI」命令を実行するようにした場合には、割込み制御状態の切り替え回数が5回となる。具体的には、DI→EI→CALLEX(割込み禁止状態に切り替え)→RETEX(割込み許可状態に戻す)→CALLEX(割込み禁止状態に切り替え)→RETEX(割込み許可状態に戻す)による計6回である。一方、実施形態のように「DI」命令を実行した後、「EI」命令を実行するよりも前に「CALLEX」命令を実行する手法を採用した場合、割込み制御状態の切り替え回数は1回に抑えることができ、制御の安定性を高めることができる。
図37、図39、図41、図43、図45、図47、図49、図51、図53の各図の1行目に示す「LD SP,CMN_STACK」を参照して分かるように、この場合における使用外領域用のスタックポインタ(第二レジスタバンク122におけるSPレジスタ116にセットすべき値)の格納アドレスは、「CMN_STACK」と定義されている。
そして、「LD SP,CMN_STACK」の命令が図37等の各図に含まれることからも理解されるように、ここでは、領域外プログラムの実行ごとに、第二スタックポインタに共通のアドレス情報をセットする例を挙げている。
回胴式遊技機の場合には、領域内プログラムから呼び出される領域外プログラムの種類が3以上ある。このように呼び出し対象の領域外プログラムが3種以上ある場合には、少なくとも、それらのうち二者の関係について、先に実行される領域外プログラムにおいてのみ第二スタックポインタに対するアドレス情報の記憶処理が行われるようにすることも可能である。このとき、処理の効率化を図る上では、第二スタックポインタに対するアドレス情報の記憶処理は、3種以上ある領域外プログラムのうち、最初に実行される領域外プログラムにおいてのみ実行されることが望ましい。
[5-5.プログラムの変形例]

続いて、プログラムの変形例について、図54から図63を参照して説明する。
これまでの説明では、CALLEXやRETEXに使用するレジスタバンクの切り替え命令を含ませる例を挙げたが、レジスタバンクの切り替え命令を独立した命令として定義することもできる。ここでは、レジスタバンクの切り替え命令(ニーモニック)が「BANKF」と定義された例を挙げるが、該切り替え命令の具体的な名称については「BANKF」に限定されるものではない。
「BANKF」としての独立したレジスタバンクの切り替え命令を用いる場合、領域内と領域外との間の処理移行の際には、一つの「CALL」命令、二つの「BANKF」命令、及び一つの「RET」命令を用いることになる。
図54、図56、図58、及び図60は、先の図36で例示した電源投入時の初期設定処理に対する「BANKF」命令の適用例として考えられ得る各種のプログラム例を示している。図55、図57、図59、及び図61は、それぞれ図54、図56、図58、図60の領域内プログラムで呼び出される領域外プログラム(領域外ワークエリア処理3)の例を示している。
図54及び図55の組で示す例は、レジスタバンクを領域内用の第一レジスタバンク121から領域外用の第二レジスタバンク122に切り替えるための「BANKF」命令を領域外プログラム側で行い、領域外用の第二レジスタバンク122から領域内用の第一レジスタバンク121に切り替えるための「BANKF」命令を領域内プログラム側で行う例である。
この場合の領域内プログラムでは、図54に示すように対象の領域外プログラムを呼び出すための「CALL」命令(CALL O_CLRWM3)に続けてレジスタバンクを第二レジスタバンク122から第一レジスタバンク121に切り替えるための「BANKF」命令が記述されている。また、この場合の領域外プログラムでは、図55に示すように1行目にレジスタバンクを第一レジスタバンク121から第二レジスタバンク122に切り替えるための「BANKF」命令が記述され、最終行に「RET」命令が記述されている。
ここで、図55に示す領域外プログラムでは、2行目に「LD SP,CMN_STACK」の命令(第二スタックポインタのセット)が記述されているが、領域外プログラム側で第一レジスタバンク121から第二レジスタバンク122に切り替えるための「BANKF」命令を実行する場合には、該「BANKF」命令は、「LD SP,CMN_STACK」の命令の実行前に実行する。
図56及び図57の組で示す例は、第一レジスタバンク121から第二レジスタバンク122に切り替えるための「BANKF」命令と、第二レジスタバンク122から第一レジスタバンク121に切り替えるための「BANKF」命令の双方を領域内プログラム側で行う例である。
この場合の領域内プログラムでは、図56に示すように、「CALL」命令の直前の行に第一レジスタバンク121から第二レジスタバンク122に切り替えるための「BANKF」命令が記述され、「CALL」命令の次行に第二レジスタバンク122から第一レジスタバンク121に切り替えるための「BANKF」命令が記述されている。
図58及び図59の組で示す例は、第一レジスタバンク121から第二レジスタバンク122に切り替えるための「BANKF」命令を領域内プログラム側で行い、第二レジスタバンク122から第一レジスタバンク121に切り替えるための「BANKF」命令を領域外プログラム側で行う例である。
図58に示すように、この場合の領域内プログラムでは、「CALL」命令の直前の行に第一レジスタバンク121から第二レジスタバンク122に切り替えるための「BANKF」命令が記述され、領域外プログラムでは、図59に示すように、「RET」命令の直前の行に第二レジスタバンク122から第一レジスタバンク121に切り替えるための「BANKF」命令が記述されている。
図60及び図61の組で示す例は、第一レジスタバンク121から第二レジスタバンク122に切り替えるための「BANKF」命令と、第二レジスタバンク122から第一レジスタバンク121に切り替えるための「BANKF」命令の双方を領域外プログラム側で行う例である。図61に示すようにこの場合の領域外プログラムでは、1行目に第一レジスタバンク121から第二レジスタバンク122に切り替えるための「BANKF」命令が記述され、「RET」命令の直前の行に第二レジスタバンク122から第一レジスタバンク121に切り替えるための「BANKF」命令が記述されている。
上記のような「BANKF」命令を定義することで、領域内と領域外との間の処理移行を実現させるための命令としてCALLEXやRETEX以外の選択肢(CALLとBANKF、又はRETとBANKF)を設けることが可能となり、プログラム作成の自由度向上を図ることができる。
ここで、領域内と領域外との間の処理移行の全てについてCALLEX、RETEXを適用することは必須ではない。例えば、領域内プログラムにおいて、領域外プログラムの呼び出し命令の前後のプログラムの処理内容によっては、CALLEX、RETEXではなく、従来通りCALL、RETを使用できる場面がある。例えば、領域内プログラムへの復帰命令により領域内に復帰した後に割込み禁止の状態で行う処理がある場面では、領域内への復帰時にEIを実行する必要はないため、CALLEX、RETEXではなくCALL、RETを用いたとしても、適切な割込み制御状態を実現できる。
図62及び図63の組により、そのような場面においてCALL、RETを用いた場合の領域内、領域外のプログラム例を示す。
なお、これら図62及び図63では、領域外用の第二レジスタバンク122を用いない場合のプログラム例を示したが、例えば図54及び図55等で説明した「BUNKF」を用いることで、領域内プログラムにおけるAF退避、復帰のための命令(「PUSH AF」、「POP AF」)の省略や、また、領域外プログラムにおけるスタックポインタ(領域内用のスタックポインタ)の退避、復帰ための命令(「LD (W_STKBAK),SP」、「LD SP,(W_STKBAK)」)及び全レジスタ退避、復帰のための命令(「PUSH ALL」「EX AF,AF'」「EXX」「PUSH GPR」、「POP GPR」「EX AF,AF'」「EXX」「POP ALL」)の省略が図られるようにすることもできる。
[5-6.その他変形例]

なお、これまでの説明では、領域内プログラムから領域外プログラムの呼び出し時において、DI(第二命令)を実行した後、EI(第一命令)を実行するよりも前に、CALLEX(第三命令)を実行する例を挙げたが、EIを実行した後に、CALLEXを実行する、換言すれば、CALLEXの前にEIを実行する手法を採ることもできる。
CALLEXの実行前にEIを実行することで、割込み禁止状態の継続時間長を短くすることができる。つまり、割込み処理が実行できないことによる処理遅延の抑制を図ることができる。
ここで、本例の遊技機1においては、タイマ割込み処理において入賞情報の更新が行われる(S908の賞球管理処理を参照)。そして、例示した各種の領域外プログラムのうち、図29等で示した性能表示モニタ集計除算処理では、このように割込み処理で更新される入賞情報を用いて性能情報の値が計算される。このため、このような性能表示モニタ集計除算処理を呼び出す際に、CALLEXの前にEIを実行する手法を採るものとすれば、領域外プログラムでの性能情報の計算は、その直前で更新された入賞情報を用いて行うことができ、好適である。
<6.Qレジスタ及びUレジスタについて>

続いて、Qレジスタ(Qレジスタ105及びQ’レジスタ105’)、及びUレジスタ130について説明する。
先ずは、図64のメモリマップを参照して、主制御部20におけるCPU20aのメモリアドレス空間について説明する。
図示のようにCPU20aのメモリアドレス空間としては、アドレス0000h(hは16進数を意味する)からアドレスFFFFhまでの計65536バイト分の空間が用意されている。
アドレス0000hからアドレス3FFFhまでの16384バイト(16kバイト)分の領域は内蔵ROMの領域とされ、アドレスF000hからアドレスF3FFhまでの1024バイト(1kバイト)分の領域は内蔵RAMの領域とされる。
これら内蔵ROMと内蔵RAMの領域の間に位置されたアドレス4000hからアドレスEFFFhまでの領域は未使用エリアとされている。
アドレスF400hからFDFFhまでは未使用エリアとされ、アドレスFE00hからFEFFhまでの領域は内蔵レジスタ1の領域、アドレスFF00hからアドレスFFCFhまでの領域は内蔵レジスタ2の領域とされる。
アドレスFFD0fからアドレスFFFFhまでの領域はXCSデコードエリアとされる。
ここで、本例のCPU20aは、データの入出力管理の手法として、メモリマップド(Memory Mapped) I/Oの手法を採用している。周知のようにメモリマップドI/Oは、データメモリと同じアドレス空間にI/Oのレジスタを割り当てる手法である。
本例では、XCSデコードエリアに対してI/Oレジスタに相当する記憶領域が割り当てられている。この意味で、XCSデコードエリアのことを以下、「入出力ポートエリア(I/Oポートエリア)」と称する。
先の図21を参照して説明したように、CPU20aがアクセス可能なメモリ領域としては、第1のメモリ領域としての使用領域と、第2のメモリ領域としての使用外領域とに区別される。図64では、内蔵RAMの領域における使用領域と使用外領域の区分を示しているが、図示のように本例における内蔵RAMの領域では、アドレスF000hからアドレスF1FFhまでの512バイト分の領域が使用領域、アドレスF200hからアドレスF2FFhまでの256バイト分の領域が使用外領域とされている。
以上を踏まえ、Qレジスタ、及びQレジスタに関連した命令である「LDQ」命令について説明する。
Qレジスタ105、及びQ’レジスタ105’は、「LDQ」命令で扱う一部のアドレスの上位値を格納するレジスタとされる。本例では、これらQレジスタ105、及びQ’レジスタ105’は8ビット(1バイト)のレジスタとされる。
「LDQ」命令は、例えば「LDQ R,m」(Rはレジスタを指定する値、mはメモリ上のアドレスを指定する値を意味する)や「LDQ m,R」のように記述され、「LD」命令と同様のロード命令として機能するものであり、基本的には、「LDQ」の記述後における左辺で指定される場所に対し右辺で指定される場所の値を書き込む命令となる。「LD」命令との差異は、「m」の値として、メモリ上のアドレスの下位値のみを記述すればよいという点である。すなわち、「LDQ」命令は、「m」として記述された値を下位値、Qレジスタ105又はQ’レジスタ105’の格納値を上位値としたアドレスにアクセスする命令となる。具体的に、「LDQ R,m」であれば、「R」で指定されたレジスタに対し、「m」の値を下位値、Qレジスタ105又はQ’レジスタ105’の格納値を上位値としたメモリ上のアドレスに記憶されている値を書き込む命令となる。また、「LDQ m,R」であれば、「m」の値を下位値、Qレジスタ105又はQ’レジスタ105’の格納値を上位値としたメモリ上のアドレスに対し、「R」で指定されたレジスタの値を書き込む命令となる。
Qレジスタは、このような「LDQ」命令を実現するために設けられたレジスタである。Qレジスタを設けることで、プログラムにはアドレスの上位値を記述する必要がなくなり、プログラム容量の削減を図ることができる。
ここで、本例では、上記のような「LDQ」命令を、図64に示した内蔵RAMの領域における使用領域に対するアクセスに適用する。そのため、Qレジスタ105、Q’レジスタ105’には、それぞれ「F0h」、「F1h」を格納する。
図64に示したように、内蔵RAMにおける使用領域は、アドレスF000hからアドレスF1FFhまでの領域として設定されている。つまり、該使用領域は、アドレス値の下位1バイト(8ビット)で賄うことのできる256バイトを超えるサイズの領域とされている。このため、仮にQレジスタを一つしか設けない場合には、上記のような「LDQ」命令は、使用領域におけるアドレス上位値が「F0h」、「F1h」何れかの領域に対してしか適用できない。
本例では、QレジスタとしてQレジスタ105、Q’レジスタ105’の二つを設けることで、内蔵RAMの使用領域における何れのアドレスであっても「LDQ」命令を適用できるようにしている。
本例では、上記のような「F0h」、「F1h」の格納は、第一レジスタバンク121におけるQレジスタ105、Q’レジスタ105’に対してのみでなく、第二レジスタバンク122におけるQレジスタ105、Q’レジスタ105’に対しても行われる。これらQレジスタ105、Q’レジスタ105’に対する「F0h」、「F1h」の格納処理は、CPU20aのリセット後の起動時において、Qレジスタ105、Q’レジスタ105’に対する初期値の設定処理として自動的に実行される。
或いは、これらQレジスタ105、Q’レジスタ105’に対する「F0h」、「F1h」の格納処理は、例えば「初期設定処理」(S101)における「起動時の各種設定処理」(S206)において実行することもできる。
前述のように第二レジスタバンク122は、領域外プログラムにより使用されるレジスタ群である。
上記のように第二レジスタバンク122のQレジスタ105、Q’レジスタ105’に対しても「F0h」、「F1h」をそれぞれ格納しておくことで、領域外プログラムが内蔵RAMにおける使用領域の記憶データを参照する際にも「LDQ」命令を使用することができる。すなわち、領域外プログラムについても「LDQ」命令を用いることによるプログラム容量の削減を図ることができる。
なお確認のため述べておくと、領域外プログラムが使用領域のデータを更新することは不許可とされているが、参照することは許可されている(図22を参照)。
ここで、「LDQ」命令の実際の使用例については、図36、図39、図40、図42、図43、図46、図50等を参照されたい。これらのうち、図39や図43に示される「LDQ」命令は、領域外プログラムの実行時に使用領域のアドレスにアクセスする命令に該当する。
「LDQ」命令を用いて内蔵RAMの使用領域内を適切にアクセスし分けるためには、該使用領域内のアクセス先のアドレスに応じて、「LDQ」命令で参照するQレジスタを切り替える必要がある。具体的には、Qレジスタ105、Q’レジスタ105’の何れを参照するかを適切に切り替えることを要する。
本例では、このようなQレジスタの切り替えは、「EX」命令により実現される。具体的には、「EX Q,Q'」の命令により実現される。
本例において、この「EX Q,Q'」の命令は、「LDQ」命令で参照するQレジスタをQレジスタ105とQ’レジスタ105’との間でトグル的に切り替える命令とされる。すなわち、参照するQレジスタ=Qレジスタ105の状態での「EX Q,Q'」の命令に応じて、参照するQレジスタをQ’レジスタ105’に切り替える。また、参照するQレジスタ=Q’レジスタ105’の状態での「EX Q,Q'」の命令に応じて、参照するQレジスタをQレジスタ105に切り替える。
なお、上記では「LDQ」命令の適用対象領域(つまり本例では内蔵RAMの使用領域)が256×2=512バイト分の領域とされ、これに応じてQレジスタを二つ設ける例を挙げたが、「LDQ」命令の適用対象領域は512バイトよりも大きいサイズの領域とすることができる。その場合には、Qレジスタの数を3以上とすることで、対象領域内の何れのアドレスにアクセスする際にも「LDQ」命令が使用可能となるようにすることができる。
続いて、Uレジスタ130について説明する。
Uレジスタ130は、図64に示した入出力ポートエリアのアドレス上位値を格納するレジスタとされる。具体的に、本例におけるUレジスタ130には「FFh」が格納される。
このUレジスタ130を設けることで、入出力命令(「IN」命令又は「OUT」命令)において入出力ポートエリアのアクセス先アドレスを指定するにあたり、該アクセス先アドレスの上位値をプログラムに記述する必要をなくすことが可能となる。
なお、本例では、メモリマップドI/Oを採用しているが、データの入出力に係る命令については、ポートマップドI/Oを採用する場合と同様の「IN」命令や「OUT」命令を採用している(例えば、図38、図40、図48等を参照)。
具体的に、この場合の「IN」命令については、「IN r,m」のように記述され、これは、「r」で指定されたレジスタに対し、「m」として記述された値を下位値、Uレジスタ130の格納値を上位値とした入出力ポートエリア内のアドレス(つまり仮想的な入出力レジスタ)に記憶された値を書き込む命令となる。また、「OUT」命令については、「OUT m,r」のように記述され、これは、「m」として記述された値を下位値、Uレジスタ130の格納値を上位値とした入出力ポートエリア内のアドレスに対し、「r」で指定されたレジスタの格納値を書き込む命令となる。
なお、上記の「IN」「OUT」命令の説明から理解されるように、メモリマップドI/Oを採用した場合には、データの入出力に係る命令として「LD」命令を用いることもできる。
図26に示したように、本例においてUレジスタ130は、第一レジスタバンク121、第二レジスタバンク122にそれぞれ一つのみ設けられている。具体的に、第一レジスタバンク121、第二レジスタバンク122のそれぞれにおいて、Uレジスタ130は、メインレジスタ123のうちの一つとして設けられている。
第二レジスタバンク122に対してもUレジスタ130が設けられることで、領域外プログラムの実行時においても、Uレジスタ130に格納されたアドレス上位値を用いた入出力ポートエリアへのアクセスを行うことが可能とされる。すなわち、領域外プログラムにおいても「IN」命令や「OUT」命令においてアクセス先アドレスの上位値を記述する必要をなくすことが可能となる。
前述のように、入出力ポートエリアはアドレスFFD0hからアドレスFFFFhまでの領域とされ、領域サイズとしては48バイトとされる。すなわち、アドレスの下位値で賄うことのできる領域サイズである。
このため、第一レジスタバンク121、第二レジスタバンク122のそれぞれにおいて、Uレジスタ130の数は単数としている。
ここで、前述のようにQレジスタについては、第一レジスタバンク121、第二レジスタバンク122のそれぞれにおいて、Qレジスタ105、Q’レジスタ105’ごとに共通の値が格納されるが、Uレジスタ130についても、第一レジスタバンク121、第二レジスタバンク122のそれぞれにおいて共通の値を格納する。具体的に本例では、それぞれのUレジスタ130に「FFh」を格納する。
このようなUレジスタ130に対する「FFh」の格納処理は、CPU20aのリセット後の起動時において、Uレジスタ130に対する初期値の設定処理として自動的に実行される。
或いは、Uレジスタ130に対する「FFh」の格納処理は、例えば「初期設定処理」(S101)における「起動時の各種設定処理」(S206)において実行することもできる。
なお、前述したQレジスタの説明では、アドレス上位値が異なる領域にアクセスする際に「EX」命令を使用することを言及したが、「EX」命令を使用することは必須ではなく、場合によってはアクセス先アドレスの上位値をプログラムに記述してアクセスを行うこともできる。
例えば、使用するQレジスタがQレジスタ105に選択されている状態で上位値「F1h」のアドレスをアクセスする場合において、使用するQレジスタを「EX」命令でQ’レジスタ105’に切り替えるのではなく、アクセス先アドレスの情報として上位値「F1h」を含むアドレス情報をプログラムに記述しておくようにしてもよい。或いは、使用するQレジスタとしてQ’レジスタ105’が選択されている状態で上位値「F0h」のアドレスをアクセスする場合において、使用するQレジスタを「EX」命令でQレジスタ105に切り替えるのではなく、アクセス先アドレスの情報として上位値「F0h」を含むアドレス情報をプログラムに記述しておくようにしてもよい。
ここで、前者の場合、Qレジスタは、上位値「F0h」のアドレスにアクセスする際には使用されるが、上位値「F1h」のアドレスにアクセスする際には使用されない。また、後者の場合、Qレジスタは、上位値「F1h」のアドレスにアクセスする際には使用されるが、上位値「F0h」のアドレスにアクセスする際には使用されない。すなわち、これらの場合におけるQレジスタは、メモリ上の使用領域内(つまりメモリ上の対象領域内)にアクセスが行われる際に、使用される場合と使用されない場合とがある、ということになる。
この一方で、Uレジスタ130は、アドレス上位値「FFh」の領域のみを対象領域とするため、メモリ上の対象領域にアクセスが行われる際に、必ず使用されることになる。
<7.実施形態のまとめ>

上記のように実施形態としての第一の遊技機は、それぞれが複数の汎用レジスタを含んで構成される第一レジスタ群(第一レジスタバンク121)、及び第二レジスタ群(第二レジスタバンク122)と、第一割込み管理レジスタ(IFFレジスタ125のIFF1)、及び第二割込み管理レジスタ(IFFレジスタ125のIFF2)と、を備える。
また、第一割込み管理レジスタと第二割込み管理レジスタに許可値を書き込む第一命令(「EI」命令)と、第一割込み管理レジスタと第二割込み管理レジスタに禁止値を書き込む第二命令(「DI」命令)と、領域内プログラムから領域外プログラムを呼び出す際に使用される第三命令(「CALLEX」命令)と、領域外プログラムから領域内プログラムに復帰する際に使用される第四命令(「RETEX」命令)と、がある。
そして、第三命令は、領域外プログラムを呼び出すよりも前に、第一割込み管理レジスタに禁止値を書き込み、使用するレジスタ群を第一レジスタ群から第二レジスタ群に切り替えるための処理を実行可能であり、第四命令は、領域内プログラムに復帰するよりも前に、第二割込み管理レジスタの値を第一割込み管理レジスタに上書きし、使用するレジスタ群を第二レジスタ群から第一レジスタ群に切り替えるための処理を実行可能とされる。
さらに、領域内プログラムにおいて、第二命令を実行した後、第一命令を実行するよりも前に、第三命令を実行するものである。
領域外プログラムを実行するときは割込み禁止状態とすることを要する。そのため、第三命令の実行前に第一命令を実行してしまうと、割込み禁止状態と割込み許可状態が頻繁に切り替わってしまうことになる。これに対し、上記のように第二命令を実行した後、第一命令を実行するよりも前に、第三命令を実行するものとすれば、割込み禁止状態が維持されたまま領域外プログラムの呼び出しと領域内プログラムへの復帰が行われるため、割込み制御状態の切り替え回数が抑えられる。
従って、制御状態の切り替わり回数を抑えることができ、制御の安定性向上を図ることができる。
また、実施形態としての第一の遊技機においては、第一レジスタ群は、スタックポインタを記憶する第一スタックポインタ(第一レジスタバンク121のSPレジスタ116)を有し、第二レジスタ群は、スタックポインタを記憶する第二スタックポインタ(第二レジスタバンク122のSPレジスタ116)を有し、第一スタックポインタに、領域内プログラムで使用するスタックメモリのアドレス情報を記憶させ、第二スタックポインタに、領域外プログラムで使用するスタックメモリのアドレス情報を記憶させ、領域内プログラムにおいて、第三命令を実行して領域外プログラムを呼び出す際に、領域外プログラムの第一アドレスを指定して呼び出す場合と、第二アドレスを指定して呼び出す場合とがあり、領域外プログラムにおいて、第一アドレスが呼び出された場合と、第二アドレスが呼び出された場合の何れにおいても、第二スタックポインタに共通のスタックメモリのアドレス情報を記憶させるための第五命令を実行している。
これにより、領域外プログラムで用いるスタックポインタの値を、領域外プログラムが呼び出されるごとにセットし直すことが可能とされる。
従って、仮に、或る領域外プログラムの実行後に第二スタックポインタの記憶値が何らかの不具合等により変化してしまっても、別の領域外プログラムが実行されたときに正しいスタックポインタの値をセットし直すことができ、領域外プログラムによるスタック処理の安定性を高めることができる。
さらに、実施形態としての第一の遊技機においては、第一レジスタ群は、スタックポインタを記憶する第一スタックポインタを有し、第二レジスタ群は、スタックポインタを記憶する第二スタックポインタを有し、前記第一スタックポインタに、前記領域内プログラムで使用するスタックメモリのアドレス情報を記憶させ、前記第二スタックポインタに、領域外プログラムで使用するスタックメモリのアドレス情報を記憶させ、領域内プログラムにおいて、第三命令を実行して領域外プログラムを呼び出す際に、領域外プログラムの第一アドレスを指定して呼び出す場合と、その後のタイミングにて、第二アドレスを指定して呼び出す場合とがあり、領域外プログラムにおいて、第一アドレスが呼び出された場合にのみ、第二スタックポインタに所定のスタックメモリのアドレス情報を記憶させるための第六命令を実行している。
領域外プログラムの処理開始時に第二スタックポインタに対してセットされているべきスタックメモリのアドレス情報は固定のアドレス情報であるため、領域外プログラムとして、第一アドレスのプログラムの実行後に第二アドレスのプログラムが実行される場合には、第二スタックポインタに対するアドレス情報の記憶処理は、先に実行される方のプログラムである第一アドレスのプログラムにおいてのみ行われれば足る。
従って、上記のように第一アドレスが呼び出された場合にのみ第二スタックポインタに所定のスタックメモリのアドレス情報を記憶させる命令を実行することで、処理の効率化を図ることができる。
実施形態としての第二の遊技機は、遊技進行に係る制御を行う制御手段を備え、制御手段は、アクセス可能なメモリアドレス空間を有すると共に、汎用レジスタと、一部の命令において扱うメモリアドレス空間のアドレスの上位値を格納するレジスタである上位値レジスタとをそれぞれ複数含んだレジスタ群(レジスタバンク)を少なくとも一つ有している。
そして、メモリアドレス空間には、領域サイズが所定サイズの第一領域(「内蔵RAM」の領域)と、第一領域とは異なる領域であって領域サイズが所定サイズよりも小さい第二領域(「入出力ポートエリア」の領域)とがあり、上位値レジスタには、第一領域に関連した第一種上位値レジスタ(Qレジスタ)と、第二領域におけるアドレスの上位値を格納する第二種上位値レジスタ(Uレジスタ)とがあり、レジスタ群において、第一種上位値レジスタの数が複数、第二種上位値レジスタの数が単数とされ、レジスタ群における複数の第一種上位値レジスタには、第1の第一種上位値レジスタ(Qレジスタ105)と、第1の第一種上位値レジスタの格納値に連続する値を格納する第2の第一種上位値レジスタ(Q’レジスタ105’)とが含まれるものである。
上位値レジスタを設けることで、第一領域や第二領域における所要のアドレスにアクセスする際には、上位値レジスタに格納された上位値を用いたアクセスを行うことで、プログラムに該アドレスの上位値を記述する必要をなくすことが可能となる。すなわち、プログラム容量の削減を図ることが可能となる。このとき、アドレス下位値のバイト数によっては、アクセス対象とする領域全体を賄えないことがある。例えば、アドレス下位値で賄うことのできる領域のサイズが256バイト(つまりアドレス下位値=1バイト)であるとして、仮に、第一領域のサイズが256バイトを超えるサイズである場合には、アドレス下位値で第一領域の全体を賄うことができない。つまりこの場合は、第一領域における256バイト以内の領域と256バイトを超える領域とで、異なるアドレス上位値を使用することを要する。このため、第一種上位値レジスタとしては、第1の第一種上位値レジスタと、第1の第一種上位値レジスタの格納値に連続する値を格納する第2の第一種上位値レジスタとを少なくとも設けるようにしている。これにより、第一領域における何れのアドレスにアクセスする際にも、上位値レジスタに格納された上位値を用いたアクセスを行うことが可能となり、プログラムにアクセス先アドレスの上位値を記述する必要をなくすことが可能となる。第二領域については、所定サイズよりも小さい領域であるため、第二種上位値レジスタの数は単数であってもプログラムにアクセス先アドレスの上位値を記述する必要をなくすことが可能である。
従って、上記のように第一種上位値レジスタを複数、第二種上位値レジスタを単数とした構成により、プログラム容量の削減を図ることができる。
また、実施形態としての第二の遊技機においては、第二領域は、制御手段の入出力レジスタを割り当てた領域である。
これにより、メモリマップド (Memory Mapped) I/Oを採用可能となる。
メモリマップドI/Oでは、ハードウェアとしてのI/Oレジスタを設ける必要がなくなるため、制御手段の内部回路を簡略化することができ、処理の高速化や低価格化を図ることができる。
さらに、実施形態としての第二の遊技機においては、第一領域には、領域内プログラムにより使用可能とされた領域である使用領域と、領域外プログラムにより使用可能とされた領域である使用外領域とが含まれ、使用領域は、アドレスの上位値が連続した二つの領域で構成され、使用外領域は、アドレスの上位値が使用領域とは異なる領域とされ、レジスタ群として、少なくとも領域内プログラムで用いる第一レジスタ群を備え、第一レジスタ群において、前記第1の第一種上位値レジスタと前記第2の第一種上位値レジスタとが設けられている。
これにより、使用領域における何れのアドレスにアクセスする際にも、二つの第一種上位値レジスタのうち対応する何れかに格納されたアドレス上位値を用いたアクセスを行うことが可能となる。すなわち、領域内プログラムにアクセス先アドレスの上位値を記述する必要をなくすことが可能となる。
従って、使用領域におけるプログラム容量の削減を図ることができる。
さらにまた、実施形態としての第二の遊技機においては、第一領域には、領域内プログラムにより使用可能とされた領域である使用領域と、領域外プログラムにより使用可能とされた領域である使用外領域とが含まれ、レジスタ群として、領域内プログラムで用いる第一レジスタ群と、領域外プログラムで用いる第二レジスタ群の二つを備え、第一、第二レジスタ群のそれぞれに第1の第一種上位値レジスタと第2の第一種上位値レジスタと第二種上位値レジスタとがあり、第一、第二レジスタ群のそれぞれにおいて、第1の第一種上位値レジスタ、第2の第一種上位値レジスタ、第二種上位値レジスタごとにそれぞれ共通の値が格納される。
すなわち、第二レジスタ群における二つの第一種上位値レジスタ、単数の第二種上位値レジスタに対して、それぞれ第一レジスタ群側と同じ値が格納される。これにより、領域外プログラムの実行時(つまり第二レジスタ群の使用時)に第一領域や第二領域にアクセスする際に、第一種上位値レジスタや第二種上位値レジスタに格納されたアドレス上位値を用いることが可能となる。つまりは、領域外プログラムについても、第一領域や第二領域にアクセスするための命令にアドレス上位値を記述する必要をなくすことが可能となる。
従って、領域外プログラムの容量が徒に拡大してしまうことの防止を図ることができる。
1 パチンコ遊技機
13 演出ボタン
15a 十字キー
15b 決定ボタン
20 主制御基板(主制御部)
20a CPU
20b ROM
20c RAM
24 演出制御基板(演出制御部)
24a CPU
24b ROM
24c RAM
36M 主液晶表示装置
36S 副液晶表示装置
38a、38b 特別図柄表示装置
45 装飾ランプ
45a 光表示装置
46 スピーカ
46a 音響発生装置
61 前扉開放センサ
83 ハンドルセンサ
94 設定キースイッチ
97 設定・性能表示器
98 RAMクリアスイッチ
100 PC(プログラムカウンタ)レジスタ
105 Qレジスタ
105’ Q’レジスタ
116 SP(スタックポインタ)レジスタ
121 第一レジスタバンク
122 第二レジスタバンク
125 IFF(割込み制御フラグ)レジスタ
130 Uレジスタ

Claims (3)

  1. それぞれが複数の汎用レジスタを含んで構成される第一レジスタ群、及び第二レジスタ群と、
    第一割込み管理レジスタ、及び第二割込み管理レジスタと、を備え、
    前記第一割込み管理レジスタと前記第二割込み管理レジスタに許可値を書き込む第一命令と、
    前記第一割込み管理レジスタと前記第二割込み管理レジスタに禁止値を書き込む第二命令と、
    領域内プログラムから領域外プログラムを呼び出す際に使用される第三命令と、
    前記領域外プログラムから前記領域内プログラムに復帰する際に使用される第四命令と、があり、
    前記第三命令は、
    前記領域外プログラムを呼び出すよりも前に、前記第一割込み管理レジスタに前記禁止値を書き込み、使用するレジスタ群を前記第一レジスタ群から前記第二レジスタ群に切り替えるための処理を実行可能であり、
    前記第四命令は、
    前記領域内プログラムに復帰するよりも前に、前記第二割込み管理レジスタの値を前記第一割込み管理レジスタに上書きし、使用するレジスタ群を前記第二レジスタ群から前記第一レジスタ群に切り替えるための処理を実行可能であり、
    前記領域内プログラムにおいて、
    前記第二命令を実行した後、前記第一命令を実行するよりも前に、前記第三命令を実行する
    遊技機。
  2. 前記第一レジスタ群は、スタックポインタを記憶する第一スタックポインタを有し、 前記第二レジスタ群は、スタックポインタを記憶する第二スタックポインタを有し、 前記第一スタックポインタに、前記領域内プログラムで使用するスタックメモリのアドレス情報を記憶させ、
    前記第二スタックポインタに、前記領域外プログラムで使用するスタックメモリのアドレス情報を記憶させ、
    前記領域内プログラムにおいて、
    前記第三命令を実行して前記領域外プログラムを呼び出す際に、前記領域外プログラムの第一アドレスを指定して呼び出す場合と、第二アドレスを指定して呼び出す場合とがあり、
    前記領域外プログラムにおいて、
    前記第一アドレスが呼び出された場合と、前記第二アドレスが呼び出された場合の何れにおいても、前記第二スタックポインタに共通のスタックメモリのアドレス情報を記憶させるための第五命令を実行する
    請求項1に記載の遊技機。
  3. 前記第一レジスタ群は、スタックポインタを記憶する第一スタックポインタを有し、
    前記第二レジスタ群は、スタックポインタを記憶する第二スタックポインタを有し、 前記第一スタックポインタに、前記領域内プログラムで使用するスタックメモリのアドレス情報を記憶させ、
    前記第二スタックポインタに、前記領域外プログラムで使用するスタックメモリのアドレス情報を記憶させ、
    前記領域内プログラムにおいて、
    前記第三命令を実行して前記領域外プログラムを呼び出す際に、前記領域外プログラムの第一アドレスを指定して呼び出す場合と、その後のタイミングにて、第二アドレスを指定して呼び出す場合とがあり、
    前記領域外プログラムにおいて、
    前記第一アドレスが呼び出された場合にのみ、前記第二スタックポインタに所定のスタックメモリのアドレス情報を記憶させるための第六命令を実行する
    請求項1に記載の遊技機。
JP2019172983A 2019-09-24 2019-09-24 遊技機 Active JP7341818B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019172983A JP7341818B2 (ja) 2019-09-24 2019-09-24 遊技機
JP2023140195A JP2023158039A (ja) 2019-09-24 2023-08-30 遊技機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019172983A JP7341818B2 (ja) 2019-09-24 2019-09-24 遊技機

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023140195A Division JP2023158039A (ja) 2019-09-24 2023-08-30 遊技機

Publications (2)

Publication Number Publication Date
JP2021049020A JP2021049020A (ja) 2021-04-01
JP7341818B2 true JP7341818B2 (ja) 2023-09-11

Family

ID=75154920

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019172983A Active JP7341818B2 (ja) 2019-09-24 2019-09-24 遊技機
JP2023140195A Pending JP2023158039A (ja) 2019-09-24 2023-08-30 遊技機

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023140195A Pending JP2023158039A (ja) 2019-09-24 2023-08-30 遊技機

Country Status (1)

Country Link
JP (2) JP7341818B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7407767B2 (ja) 2021-05-13 2024-01-04 株式会社平和 遊技機

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018143629A (ja) 2017-03-08 2018-09-20 株式会社三共 遊技機
JP2019136251A (ja) 2018-02-08 2019-08-22 株式会社平和 遊技機
JP2019141675A (ja) 2019-04-23 2019-08-29 株式会社エルイーテック プロセッサ
JP2021040919A (ja) 2019-09-10 2021-03-18 サミー株式会社 遊技機

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018143629A (ja) 2017-03-08 2018-09-20 株式会社三共 遊技機
JP2019136251A (ja) 2018-02-08 2019-08-22 株式会社平和 遊技機
JP2019141675A (ja) 2019-04-23 2019-08-29 株式会社エルイーテック プロセッサ
JP2021040919A (ja) 2019-09-10 2021-03-18 サミー株式会社 遊技機

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
「性能表示モニタサンプルプログラム、サンプル資料の配付について」,「性能表示モニタ」に関する技術資料,日本遊技機工業組合,2017年11月09日

Also Published As

Publication number Publication date
JP2021049020A (ja) 2021-04-01
JP2023158039A (ja) 2023-10-26

Similar Documents

Publication Publication Date Title
JP6642945B2 (ja) 遊技機
JP6827898B2 (ja) 遊技機
JP6656209B2 (ja) 遊技機
JP7282643B2 (ja) 遊技機
JP6768605B2 (ja) 遊技機
JP6646911B2 (ja) 遊技機
JP6787862B2 (ja) 遊技機
JP6827901B2 (ja) 遊技機
JP2013183739A (ja) 遊技台
JP6827900B2 (ja) 遊技機
JP6827899B2 (ja) 遊技機
JP2023158039A (ja) 遊技機
JP6967553B2 (ja) 遊技機
JP2009261535A (ja) 遊技台
JP6964149B2 (ja) 遊技機
JP2021062264A (ja) 遊技機
JP7083378B2 (ja) 遊技機
JP6762040B2 (ja) 遊技機
JP6762041B2 (ja) 遊技機
JP6999605B2 (ja) 遊技機
JP6762039B2 (ja) 遊技機
JP4671978B2 (ja) 遊技台
JP2021058763A (ja) 遊技機
JP2021058765A (ja) 遊技機
JP2021058764A (ja) 遊技機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220805

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20220805

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230425

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230822

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230830

R150 Certificate of patent or registration of utility model

Ref document number: 7341818

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150