以下、本発明の実施の形態を図面を参照しながら説明する。図1ないし図16は、本発明に係る遊技機、主制御基板、周辺基板および認証プログラム、並びに認証方法の実施の形態を示す図である。
本実施の形態は、本発明に係る遊技機、主制御基板、周辺基板および認証プログラム、並びに認証方法をパチンコ機に適用したものである。
〔遊技盤の構成〕
まず、パチンコ機における遊技盤101の構成を説明する。
図1は、遊技盤101の正面図である。
図1において、遊技盤101の左側には、円弧を描いて上方に延長する2つのレール102a、102bが設けられている。遊技領域103には、遊技球の落下軌跡を変則的にするための複数の釘(不図示)が設けられ、落下途中の位置には、遊技球の落下方向を変化させる風車や入賞口が設けられている。遊技球は、遊技盤101の下部位置に配置された発射部(不図示)により発射され、レール102a、102b間を上昇して遊技盤101の上部位置に達した後、遊技領域103内を落下する。
遊技盤101の中央部には、3つの領域にそれぞれ演出図柄を独立に変動させながら表示する図柄表示部104が設けられている。図柄表示部104は、例えば、液晶表示器(LCD(Liquid Crystal Display))またはCRT(Cathode Ray Tube)ディスプレイ等の可変表示装置、7セグメントLED、ドットマトリクス表示装置、モータの回転により可変表示するドラム等であり、複数の数字や図柄等からなる演出図柄を変動表示する。
図柄表示部104の下方には、遊技球を入賞可能な始動入賞口105が設けられている。また、図柄表示部104の左右両側には、それぞれ入賞ゲート106が設けられている。入賞ゲート106を遊技球が通過すると、所定の抽選が行われ、これに当選すると、始動入賞口105が所定時間だけ開放する。
始動入賞口105の左右両側には、それぞれ普通入賞口107が設けられている。普通入賞口107に遊技球が入賞すると、遊技球1個につき所定数(例えば、10個)の遊技球が賞球として払い出される。
始動入賞口105の下方には、通常時は閉止状態であるが図柄表示部104の演出図柄が大当たり図柄(例えば、「777」)となったときは、開放状態となって遊技球を入賞可能とする大入賞口109が設けられている。大当たり抽選で「大当たり」(以下、単に「大当たり」という。)となったときは、大入賞口109の全面に設置された開閉部材が開閉動作を繰り返す。開閉部材が開放中は、多数の遊技球の入賞を受け付ける。大入賞口109に遊技球が入賞すると、遊技球1個につき所定数(例えば、10個)の遊技球が賞球として払い出される。大入賞口109の開放は、所定時間(例えば、30秒)経過するか、所定数(例えば、10個)の遊技球が入賞するまで継続する。大入賞口109の1回の開放期間をラウンドと呼び、ラウンドは、最大で所定回数(以下、最大ラウンド数という。)継続する。
遊技領域103の最下方には、いずれの入賞口にも入賞しなかった遊技球を回収するための回収口108が設けられている。
〔遊技制御装置の構成〕
次に、パチンコ機における遊技制御装置100の構成を説明する。
図2は、遊技制御装置100の構成を示すブロック図である。
遊技制御装置100は、図2に示すように、遊技の主制御を行う主制御部200と、主制御部200の制御により遊技の演出制御を行う演出制御部300と、主制御部200の制御により遊技球の払出制御を行う賞球制御部400とを有して構成されている。
主制御部200は、遊技の主制御を行い、遊技の演出制御または遊技球の払出制御を行うための各種の制御コマンドを演出制御部300および賞球制御部400にそれぞれ送信する。主制御部200は、制御プログラムを記憶したROM204と、ROM204の制御プログラムに従って遊技制御処理を実行するCPU202と、CPU202の演算処理時におけるデータのワークエリアとして機能するRAM206と、外部装置との入出力を行うI/F210とを有して構成されている。
RAM206は、主制御部200に対する入出力データ、演算処理のためのデータ、乱数を生成するための乱数カウンタその他各種のカウンタ、大当たりフラグその他各種のフラグ、および保留球数を記憶する。乱数カウンタは、大当たり抽選に用いる乱数(大当たり決定乱数)、演出図柄の停止態様を決定するための乱数(停止図柄決定乱数)、演出図柄の変動パターンを決定するための乱数(変動パターン決定乱数)、演出図柄の一部をリーチ図柄(例えば、「77」)で停止させて大当たりの予告を行う演出(以下、リーチ演出という。)の有無を決定するための乱数(リーチ決定乱数)、その他遊技制御に用いる乱数のそれぞれに対応して設けられている。また、保留球数とは、始動入賞口105に入賞した遊技球の数であって大当たり抽選が行われていない分をいう。
I/F210には、始動入賞口105に入賞した遊技球を検出する始動入賞口検出部280と、入賞ゲート106を通過した遊技球を検出するゲート検出部282と、普通入賞口107に入賞した遊技球を検出する普通入賞口検出部284と、大入賞口109に入賞した遊技球を検出する大入賞口検出部286とが接続されている。これらの検出部280〜286は、例えば、近接スイッチを用いて構成することができる。
I/F210には、さらに、大当たり中に大入賞口109の開閉部材を開閉動作させる大入賞口開閉部288と、演出制御部300と、賞球制御部400とが接続されている。なお、演出制御部300との通信は、主制御部200から演出制御部300への一方向となっている。これに対し、賞球制御部400との通信は、双方向となっている。
大入賞口開閉部288は、例えば、ソレノイドを用いて構成することができる。大当たりは、大当たり決定乱数に基づいて所定確率(例えば、1/300)で発生するようあらかじめプログラムされている。
演出制御部300は、主制御部200から制御コマンドを受信し、受信した制御コマンドに基づいて遊技の演出制御を行う。演出制御部300は、制御プログラムを記憶したROM304と、ROM304の制御プログラムに従って演出制御処理を実行するCPU302と、CPU302の演算処理時におけるデータのワークエリアとして機能するRAM306と、図柄表示部104に表示させる画像データを書き込むVRAM308と、外部装置との入出力を行うI/F310とを有して構成されている。
ROM304は、検証値と照合するための期待値を記憶する。検証値は、主制御部200を認証するためのものであり、期待値は、検証値と同一の値となる。
RAM306は、主制御部200からの入力データ、演算処理のためのデータ、乱数を生成するための乱数カウンタその他各種のカウンタ、および各種のフラグを記憶する。
I/F310には、主制御部200と、図柄表示部104と、スピーカ380から音声を出力する音声制御を行う音声制御部382と、ランプ384を点灯させるランプ制御を行うランプ制御部386とが接続されている。
賞球制御部400は、主制御部200から制御コマンドを受信し、受信した制御コマンドに基づいて遊技球の払出制御を行う。賞球制御部400は、制御プログラムを記憶したROM404と、ROM404の制御プログラムに従って払出制御処理を実行するCPU402と、CPU402の演算処理時におけるデータのワークエリアとして機能するRAM406と、外部装置との入出力を行うI/F410とを有して構成されている。
I/F410には、主制御部200と、遊技球の貯留部から所定数の遊技球を払い出す払出部480と、遊技球を遊技盤101に発射する発射部482とが接続されている。
賞球制御部400は、払出部480に対して、各入賞口(始動入賞口105、普通入賞口107、大入賞口109)への入賞に応じて所定数の遊技球を払い出す制御を行う。また、発射部482に対する操作を検出し、遊技球の発射を制御する。
発射部482は、遊技者による操作を検出するセンサ(不図示)と、遊技球を発射させるソレノイド(不図示)とを有して構成されている。賞球制御部400は、発射部482のセンサにより操作を検出すると、その操作量に応じてソレノイドを駆動させて遊技球を間欠的に発射する。
なお、主制御部200、演出制御部300および賞球制御部400は、それぞれ異なるプリント基板(主制御基板、演出制御基板および賞球制御基板)に設けられる。これに限らず、例えば、賞球制御部400は、主制御部200と同一のプリント基板に設けることもできる。
〔主制御部200および演出制御部300の機能〕
次に、主制御部200および演出制御部300の機能概要を説明する。
図3は、主制御部200および演出制御部300の機能概要を示す機能ブロック図である。
主制御部200は、図3に示すように、ROM204の制御プログラムのデータに基づいて認証データを生成する認証データ生成部220と、認証データ生成部220で生成した認証データを暗号化する暗号化部222と、暗号化部222で暗号化された認証データ(以下、暗号化認証データという。)を付加してはずれ非リーチコマンドまたははずれリーチコマンドを演出制御部300に送信する送信部224とを有して構成されている。
暗号化部222は、複数の暗号化アルゴリズムが使用可能であり、それら暗号化アルゴリズムのなかからいずれかを選択し、選択した暗号化アルゴリズムにより認証データを暗号化する。
演出制御部300は、はずれ非リーチコマンドまたははずれリーチコマンドを受信する受信部320と、受信部320で受信したはずれ非リーチコマンドまたははずれリーチコマンドに付加されている暗号化認証データを復号化する復号化部322と、復号化部322の復号化結果に基づいて認証を行う認証部324と、認証部324で認証が得られなかったときは、不正行為が行われたことを示す通知(以下、不正通知という。)を行う通知部326とを有して構成されている。
復号化部322は、暗号化部222が使用する複数の暗号化アルゴリズムのそれぞれに対応する復号化アルゴリズムが使用可能であり、それら復号化アルゴリズムにより暗号化認証データをそれぞれ復号化する。例えば、2つの復号化アルゴリズムが使用可能であれば、復号化結果が2つ得られる。
認証部324は、復号化部322で得られた複数の復号化結果のうちいずれかが認証条件を満たすか否かを判定する。
〔制御コマンドのデータ構造〕
次に、制御コマンドのデータ構造を説明する。
図4は、通常の制御コマンドおよび認証データ付制御コマンドのデータ構造を示す図である。
通常の制御コマンドは、はずれ非リーチコマンドおよびはずれリーチコマンド以外の制御コマンドであって、図4に示すように、制御コマンド500のみからなる。これに対し、認証データ付制御コマンドは、はずれ非リーチコマンドまたははずれリーチコマンドである制御コマンド500に暗号化認証データ502を付加してなる。
図5は、制御コマンド500のデータ構造を示す図である。
制御コマンド500は、図5に示すように、制御コマンド500を識別するための識別子であるモード(MODE)と、制御コマンド500の具体的な実行内容を示すデータであるイベント(EVENT)とからなる。モードには、1バイト長のモード識別番号が、イベントには、1バイト長のイベント番号がそれぞれ設定される。
図6は、主制御部200から送信される制御コマンドの内容を示す図である。
制御コマンドには、図6に示すように、電源オンコマンド、電源オフコマンド、客待ちデモコマンド、客待ちデモ停止コマンド、変動パターンコマンド、大当たり開始コマンド、大当たり終了コマンドおよび大当たりコマンドがある。
電源オンコマンドは、電源の投入を指定するための制御コマンドであって、電源投入時に演出制御部300および賞球制御部400に送信される。
電源オフコマンドは、電源の遮断を指定するための制御コマンドであって、電源遮断時に演出制御部300および賞球制御部400に送信される。
客待ちデモコマンドは、遊技客を誘致するためのデモンストレーション演出(以下、客待ちデモという。)の開始を指定するための制御コマンドであって、遊技中断時に演出制御部300に送信される。
客待ちデモ停止コマンドは、客待ちデモの終了を指定するための制御コマンドであって、遊技再開時に演出制御部300に送信される。
変動パターンコマンドは、演出図柄の変動パターンを指定するための制御コマンドであって、演出図柄の変動開始時に演出制御部300に送信される。変動パターンコマンドには、はずれ非リーチコマンド、はずれリーチコマンド、大当たりリーチコマンドがある。
はずれ非リーチコマンドは、大当たり抽選で「はずれ」(以下、単に「はずれ」という。)となったときに選択される変動パターンのうちリーチ演出を行わない変動パターンを指定するための制御コマンドである。はずれ非リーチコマンドには、暗号化認証データが付加される。
はずれリーチコマンドは、はずれ時に選択される変動パターンのうちリーチ演出を行う変動パターンを指定するための制御コマンドである。演出制御部300では、はずれリーチコマンドまたははずれ非リーチコマンドに基づいてはずれであることを判定することができる。また、はずれリーチコマンドには、暗号化認証データが付加される。
大当たりリーチコマンドは、大当たり時に選択される変動パターンのうちリーチ演出を行う変動パターンを指定するための制御コマンドである。演出制御部300では、大当たりリーチコマンドに基づいて大当たりであることを判定することができる。
大当たり開始コマンドは、大当たり演出の開始を指定するための制御コマンドであって、大当たり演出の開始時に演出制御部300に送信される。
大当たり終了コマンドは、大当たり演出の終了を指定するための制御コマンドであって、大当たり演出の終了時(最終ラウンドの終了時)に演出制御部300に送信される。
大当たりコマンドは、大当たりを指定するための制御コマンドであって、これには、ラウンド開始コマンドおよびラウンド終了コマンドがある。
ラウンド開始コマンドは、ラウンドの開始を指定するための制御コマンドであって、ラウンドの開始時に演出制御部300に送信される。ラウンド開始コマンドは、各ラウンドごとに設定されている。例えば、最大ラウンド数が15回である場合は、15種類のラウンド開始コマンドが設定される。したがって、ラウンドが2回以上継続する場合は、大当たり中にラウンド開始コマンドが複数回にわたって送信されることになる。
ラウンド終了コマンドは、ラウンドの終了を指定するための制御コマンドであって、最終ラウンドを除くラウンドの終了時に演出制御部300に送信される。ラウンド終了コマンドは、最終ラウンドを除く各ラウンドごとに設定されている。例えば、最大ラウンド数が15回である場合は、14種類のラウンド終了コマンドが設定される。したがって、ラウンドが3回以上継続する場合は、大当たり中にラウンド終了コマンドが複数回にわたって送信されることになる。
なお、これら制御コマンドは、あくまで代表的なものであり、その他にも各種の制御コマンドが規定されている。
〔遊技制御処理〕
次に、主制御部200で実行される遊技制御処理を説明する。
CPU202は、所定の動作クロック(例えば、4[ms])で1サイクルを実行可能な制御プログラムをROM204から読み出し、読み出した制御プログラムに従って、図7のフローチャートに示す遊技制御処理を実行する。
図7は、遊技制御処理を示すフローチャートである。
遊技制御処理は、CPU202において実行されると、図7に示すように、まず、ステップS100に移行する。
ステップS100では、電源がオンになったか否かを判定し、電源がオンになったと判定したとき(Yes)は、ステップS102に移行するが、そうでないと判定したとき(No)は、電源がオンになるまでステップS100で待機する。
ステップS102では、RAM206の内容を初期化し、I/F210を介して、演出制御部300および賞球制御部400に電源オンコマンドを送信する初期化処理を実行する。
次いで、ステップS104に移行して、始動入賞口105に遊技球が入賞したことを判定する入賞判定処理を実行し、ステップS106に移行して、大当たりの判定を行うとともに演出図柄の変動パターンを決定する大当たり判定処理を実行し、ステップS108に移行して、大入賞口109の開閉部材を所定パターンで開放させる電動役物制御処理を実行し、ステップS110に移行する。
ステップS110では、賞球制御部400に対して遊技球の払出を指定するための制御コマンド(払出制御コマンド)をRAM206の送信バッファに格納する賞球払出制御処理を実行し、ステップS112に移行して、I/F210を介して、送信バッファに格納された制御コマンドを演出制御部300または賞球制御部400に送信する制御コマンド送信処理を実行し、ステップS114に移行する。
ステップS114では、電源がオフになったか否かを判定し、電源がオフになったと判定したとき(Yes)は、ステップS116に移行して、I/F210を介して、演出制御部300および賞球制御部400に電源オフコマンドを送信する終了処理を実行し、遊技制御処理を終了する。
一方、ステップS114で、電源がオフになっていないと判定したとき(No)は、ステップS104に移行する。
なお、乱数カウンタは、上記動作クロックの1周期(例えば、4[ms])のうち各処理を実行した残余時間を利用して更新される。またその他、遊技制御処理と並列に実行される乱数更新処理で更新することもできる。乱数カウンタは、例えば、「0」から順に「1」ずつカウントアップを行っていき、カウント値が最大値(例えば、「999」)を超えたときに「0」に戻すことにより、所定の数値範囲(例えば、「0」〜「999」)で循環的にカウントを行う。
〔制御コマンド送信処理〕
次に、ステップS112の制御コマンド送信処理を説明する。
図8は、制御コマンド送信処理を示すフローチャートである。
制御コマンド送信処理は、ステップS112において実行されると、図8に示すように、まず、ステップS200に移行する。
ステップS200では、制御コマンドを送信バッファから読み出し、ステップS202に移行して、読み出した制御コマンドがはずれ非リーチコマンドまたははずれリーチコマンドであるか否かを判定し、はずれ非リーチコマンドまたははずれリーチコマンドであると判定したとき(Yes)は、ステップS204に移行する。
ステップS204では、ROM204の制御プログラムのデータに基づいて認証データを生成する。認証データは、演出制御部300で主制御部200を認証するためのデータであって、例えば、制御プログラムの一部または全部のデータに対して、ハッシュ関数による演算、パリティチェック、巡回冗長検査(CRC(Cyclic Redundancy Check))またはチェックサム等の誤り検出演算を行って得られた値を検証値として含む。このように、検証値は、ROM204に実際に記憶されている制御プログラムのデータから算出される。したがって、検証値を用いて認証を行うことにより、正規の主制御基板を不正な主制御基板に取り替えたり、ROM204の制御プログラムを改ざんしたりといった不正行為を検出することができる。
次いで、ステップS206に移行して、複数の暗号化アルゴリズムのうちいずれかにより、生成した認証データを暗号化する暗号化処理を実行する。暗号化処理では、複数の暗号化アルゴリズムのなかからいずれかを選択する。暗号化アルゴリズムの選択は、例えば、乱数等に基づいてランダムで行う。
暗号化アルゴリズムとしては、例えば、暗号鍵A(例えば、「0x33」)との排他的論理和(XOR)を演算する暗号化アルゴリズムA、および暗号鍵B(例えば、「0x77」)との排他的論理和を演算する暗号化アルゴリズムBが用いられる。この場合、暗号化アルゴリズムに対応する復号化アルゴリズムは、同一のものとなる。
そして、選択した暗号化アルゴリズムにより、生成した認証データを暗号化する。例えば、暗号化アルゴリズムAを選択した場合は、認証データの検証値と暗号鍵Aとの排他的論理和を演算し、得られた演算値を暗号化認証データとする。なお、暗号化認証データは、どの暗号化アルゴリズムを選択したかについての情報は含まない。
次いで、ステップS208に移行して、ステップS200で読み出した制御コマンドを、暗号化した暗号化認証データを付加して演出制御部300に送信し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS202で、はずれ非リーチコマンドまたははずれリーチコマンドでないと判定したとき(No)は、ステップS210に移行して、ステップS200で読み出した制御コマンドをそのまま演出制御部300または賞球制御部400に送信し、一連の処理を終了して元の処理に復帰させる。
なお、電源オンコマンドおよび電源オフコマンドの送信(ステップS102、S116)についても、図8のフローチャートに示す制御コマンド送信処理と同様の処理を行う。
〔入賞判定処理〕
次に、ステップS104の入賞判定処理を説明する。
図9は、入賞判定処理を示すフローチャートである。
入賞判定処理は、ステップS104において実行されると、図9に示すように、まず、ステップS300に移行する。
ステップS300では、保留球数が「0」であるか否かを判定し、保留球数が「0」であると判定したとき(Yes)は、ステップS302に移行する。
ステップS302では、タイマ(不図示)を用いて始動入賞口105への最後の入賞から所定時間(例えば、10分)が経過したか否かを判定し、所定時間が経過したと判定したとき(Yes)は、ステップS304に移行する。
ステップS304では、客待ちデモを行う客待ちデモ実行処理を実行する。客待ちデモ実行処理では、客待ちデモコマンドを送信バッファに格納することにより客待ちデモを開始する。また、始動入賞口105への入賞、発射部482に対する操作等を契機として遊技の再開を検出したときは、客待ちデモ停止コマンドを送信バッファに格納することにより客待ちデモを終了する。これにより、ステップS112の制御コマンド送信処理では、客待ちデモコマンドまたは客待ちデモ停止コマンドが演出制御部300に送信される。
次いで、ステップS306に移行して、I/F210を介して始動入賞口検出部280からのセンサ信号を読み込み、読み込んだセンサ信号に基づいて始動入賞口105に遊技球が入賞したことを検出したか否かを判定し、遊技球の入賞を検出したと判定したとき(Yes)は、ステップS308に移行する。
ステップS308では、保留球数が「4」以上であるか否かを判定し、保留球数が「4」未満であると判定したとき(No)は、ステップS310に移行して、保留球数に「1」を加算し、ステップS312に移行する。
ステップS312では、大当たり決定乱数、停止図柄決定乱数その他遊技制御に用いる乱数を乱数カウンタから取得し、ステップS314に移行して、取得した各乱数を、保留球数に対応したRAM206の所定領域にそれぞれ格納し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS308で、保留球数が「4」以上であると判定したとき(Yes)、およびステップS306で、遊技球の入賞を検出しないと判定したとき(No)はいずれも、一連の処理を終了して元の処理に復帰させる。
一方、ステップS302で、所定時間が経過していないと判定したとき(No)、およびステップS300で、保留球数が「0」でないと判定したとき(No)はいずれも、ステップS306に移行する。
〔大当たり判定処理〕
次に、ステップS106の大当たり判定処理を説明する。
図10は、大当たり判定処理を示すフローチャートである。
大当たり判定処理は、所定確率で大当たりを発生させるために、大当たり決定乱数がとり得る所定の数値範囲(例えば、「0」〜「400」)に1個の大当たり値を設定し、始動入賞口105に遊技球が入賞した入賞タイミングで大当たり決定乱数を取得し、取得した乱数値と大当たり値とが一致しているときに大当たりを発生させる処理であって、ステップS106において実行されると、図10に示すように、まず、ステップS400に移行する。
ステップS400では、図柄表示部104において演出図柄が変動中か否かを判定し、演出図柄が変動中でないと判定したとき(No)は、ステップS402に移行して、保留球数が「1」以上であるか否かを判定し、保留球数が「1」以上であると判定したとき(Yes)は、ステップS404に移行する。
ステップS404では、保留球数に対応したRAM206の所定領域から大当たり決定乱数を読み出し、ステップS406に移行して、読み出した乱数値が大当たり値と一致しているか否かを判定し、大当たり値と一致していると判定したとき(Yes)は、ステップS408に移行して、大当たりフラグをセットし、ステップS410に移行する。
ステップS410では、大当たり時に停止させる演出図柄の態様を決定する大当たり時停止図柄決定処理を実行する。大当たり時停止図柄決定処理では、例えば、大当たり用の停止図柄決定テーブルをROM204から読み出す。そして、保留球数に対応したRAM206の所定領域から停止図柄決定乱数を読み出し、読み出した乱数値の順位の停止図柄番号を、読み出した停止図柄決定テーブルから取得し、取得した停止図柄番号を示す制御コマンド(図柄指定コマンド)を送信バッファに格納する。
次いで、ステップS412に移行して、大当たり時に変動表示する演出図柄の変動パターンを決定する大当たり時変動パターン決定処理を実行する。大当たり時変動パターン決定処理では、例えば、リーチ決定乱数を乱数カウンタから取得し、取得した乱数値に対応する大当たり用の変動パターン決定テーブルをROM204から読み出す。大当たりリーチコマンドは、1または複数の特定の変動パターン決定テーブルにのみ登録されているので、リーチ決定乱数に基づくこの選択は、リーチ演出を行うか否かを決定することになる。そして、変動パターン決定乱数を乱数カウンタから取得し、取得した乱数値の順位の変動パターン番号を、読み出した変動パターン決定テーブルから取得し、取得した変動パターン番号を示す変動パターンコマンドを送信バッファに格納する。これにより、ステップS112の制御コマンド送信処理では、大当たりリーチコマンドその他大当たり時に選択される変動パターンコマンドが演出制御部300に送信される。
次いで、ステップS414に移行して、演出制御部300に対して演出図柄の変動開始を指定するための制御コマンド(変動開始コマンド)を送信バッファに格納する図柄変動開始処理を実行し、ステップS416に移行して、保留球数から「1」を減算し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS406で、大当たり値と一致しないと判定したとき(No)は、ステップS418に移行して、はずれ時に停止させる演出図柄の態様を決定するはずれ時停止図柄決定処理を実行する。はずれ時停止図柄決定処理は、ステップS410と同様に構成される。ステップS410と異なるのは、はずれ用の停止図柄決定テーブルを用いる点である。
次いで、ステップS420に移行して、はずれ時に変動表示する演出図柄の変動パターンを決定するはずれ時変動パターン決定処理を実行する。はずれ時変動パターン決定処理は、ステップS412と同様に構成される。ステップS412と異なるのは、はずれ用の変動パターン決定テーブルを用いる点である。これにより、ステップS112の制御コマンド送信処理では、暗号化認証データが付加されたはずれ非リーチコマンド、暗号化認証データが付加されたはずれリーチコマンドその他はずれ時に選択される変動パターンコマンドが演出制御部300に送信される。
ステップS420の処理が終了すると、ステップS414に移行する。
一方、ステップS400で、図柄表示部104において演出図柄が変動中であると判定したとき(Yes)は、ステップS422に移行する。
ステップS422では、演出図柄の変動を開始してから所定時間(例えば、30秒)が経過したか否かを判定し、所定時間が経過したと判定したとき(Yes)は、ステップS424に移行して、演出制御部300に対して演出図柄の停止を指定するための制御コマンド(図柄停止コマンド)を送信バッファに格納する図柄停止処理を実行し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS422で、所定時間が経過していないと判定したとき(No)、およびステップS402で、保留球数が「0」であると判定したとき(No)はいずれも、一連の処理を終了して元の処理に復帰させる。
〔電動役物制御処理〕
次に、ステップS108の電動役物制御処理を説明する。
図11は、電動役物制御処理を示すフローチャートである。
電動役物制御処理は、ステップS108において実行されると、図11に示すように、まず、ステップS500に移行する。
ステップS500では、大当たりフラグに基づいて大当たりか否かを判定し、大当たりフラグがセットされていることにより大当たりであると判定したとき(Yes)は、ステップS502に移行する。
ステップS502では、大当たり演出を開始するタイミングであるか否かを判定し、大当たり演出を開始するタイミングであると判定したとき(Yes)は、ステップS504に移行する。
ステップS504では、大当たり開始コマンドを送信バッファに格納する大当たり演出開始処理を実行し、一連の処理を終了して元の処理に復帰させる。これにより、ステップS112の制御コマンド送信処理では、大当たり開始コマンドが演出制御部300に送信される。
一方、ステップS502で、大当たり演出を開始するタイミングでないと判定したとき(No)は、ステップS506に移行して、ラウンドを開始するタイミングであるか否かを判定し、ラウンドを開始するタイミングであると判定したとき(Yes)は、ステップS508に移行する。
ステップS508では、ラウンド開始コマンドを送信バッファに格納するラウンド開始処理を実行し、一連の処理を終了して元の処理に復帰させる。これにより、ステップS112の制御コマンド送信処理では、ラウンド開始コマンドが演出制御部300に送信される。
一方、ステップS506で、ラウンドを開始するタイミングでないと判定したとき(No)は、ステップS510に移行して、ラウンドが継続中であるか否かを判定し、ラウンドが継続中であると判定したとき(Yes)は、ステップS512に移行する。
ステップS512では、大入賞口開閉部288により大入賞口109の開閉を制御する大入賞口開閉制御処理を実行し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS510で、ラウンドが継続中でないと判定したとき(No)は、ステップS514に移行して、ラウンドを終了するタイミングであるか否かを判定し、ラウンドを終了するタイミングであると判定したとき(Yes)は、ステップS516に移行する。
ステップS516では、ラウンド回数に「1」を加算し、ステップS518に移行して、ラウンド回数が最大ラウンド数(例えば、15回)を超えたか否かを判定し、最大ラウンド数を超えていないと判定したとき(No)は、ステップS520に移行する。
ステップS520では、ラウンド終了コマンドを送信バッファに格納するラウンド終了処理を実行し、一連の処理を終了して元の処理に復帰させる。これにより、ステップS112の制御コマンド送信処理では、ラウンド終了コマンドが演出制御部300に送信される。
一方、ステップS518で、ラウンド回数が最大ラウンド数を超えていると判定したとき(Yes)は、ステップS522に移行する。
ステップS522では、大当たり終了コマンドを送信バッファに格納する大当たり演出終了処理を実行する。これにより、ステップS112の制御コマンド送信処理では、大当たり終了コマンドが演出制御部300に送信される。
次いで、ステップS524に移行して、大当たりフラグをリセットし、一連の処理を終了して元の処理に復帰させる。
一方、ステップS514で、ラウンドを終了するタイミングでないと判定したとき(No)、およびステップS500で、大当たりフラグがリセットされていることにより大当たりでないと判定したとき(No)はいずれも、一連の処理を終了して元の処理に復帰させる。
〔演出制御処理〕
次に、演出制御部300で実行される演出制御処理を説明する。
CPU302は、制御プログラムをROM304から読み出し、読み出した制御プログラムに従って、図12のフローチャートに示す演出制御処理を実行する。
図12は、演出制御処理を示すフローチャートである。
演出制御処理は、CPU302において実行されると、図12に示すように、まず、ステップS600に移行する。
ステップS600では、主制御部200から制御コマンドを受信する制御コマンド受信処理を実行し、ステップS602に移行して、受信した制御コマンドのうち変動パターンコマンドを処理する変動パターンコマンド処理を実行し、ステップS604に移行する。
ステップS604では、受信した制御コマンドのうち大当たりコマンドを処理する大当たりコマンド処理を実行し、ステップS606に移行して、受信した制御コマンドのうち変動パターンコマンドおよび大当たりコマンド以外のものを処理するその他コマンド処理を実行し、ステップS600に移行する。
〔制御コマンド受信処理〕
次に、ステップS600の制御コマンド受信処理を説明する。
図13は、制御コマンド受信処理を示すフローチャートである。
制御コマンド受信処理は、ステップS600において実行されると、図13に示すように、まず、ステップS700に移行する。
ステップS700では、I/F310を介して主制御部200から制御コマンドを受信したか否かを判定し、制御コマンドを受信したと判定したとき(Yes)は、ステップS702に移行するが、そうでないと判定したとき(No)は、制御コマンドを受信するまでステップS700で待機する。
ステップS702では、受信した制御コマンドがはずれ非リーチコマンドまたははずれリーチコマンドであるか否かを判定し、はずれ非リーチコマンドまたははずれリーチコマンドであると判定したとき(Yes)は、ステップS704に移行して、受信したはずれ非リーチコマンドまたははずれリーチコマンドに付加されている暗号化認証データを取得し、ステップS706に移行する。
ステップS706では、主制御部200が使用する複数の暗号化アルゴリズムのそれぞれに対応する復号化アルゴリズムにより、取得した暗号化認証データをそれぞれ復号化する復号化処理を実行する。
復号化アルゴリズムとしては、例えば、復号鍵A(例えば、「0x33」)との排他的論理和を演算する復号化アルゴリズムA、および復号鍵B(例えば、「0x77」)との排他的論理和を演算する復号化アルゴリズムBが用いられる。ここで、復号化アルゴリズムAは、暗号化アルゴリズムAにより暗号化した暗号化結果を復号化可能なものであり、復号化アルゴリズムBは、暗号化アルゴリズムBにより暗号化した暗号化結果を復号化可能なものである。
したがって、復号化処理では、復号化アルゴリズムAにより暗号化認証データを復号化して検証値Aを、復号化アルゴリズムBにより暗号化認証データを復号化して検証値Bをそれぞれ得る。検証値A、Bのうちいずれかが、主制御部200で生成した検証値(すなわち、期待値)と一致する。
次いで、ステップS708に移行して、ROM304から期待値を読み出し、ステップS710に移行して、復号化して得られた検証値のいずれかが、読み出した期待値と一致するか否かを判定し、期待値と一致すると判定したとき(Yes)は、ステップS712に移行する。
ステップS712では、ステップS700で受信した制御コマンドをRAM306の受信バッファに格納し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS710で、検証値が期待値と一致しないと判定したとき(No)は、ステップS714に移行して、復号化して得られたすべての検証値について期待値との照合が終了したか否かを判定し、すべての検証値について照合が終了したと判定したとき(Yes)は、ステップS716に移行する。
ステップS716では、ステップS700で受信した制御コマンドを破棄し、ステップS718に移行する。
ステップS718では、図柄表示部104、音声制御部382およびランプ制御部386に対して、不正通知を行う不正通知演出を指定するための制御コマンド(不正通知演出コマンド)をそれぞれ送信する不正通知処理を実行する。図柄表示部104、音声制御部382およびランプ制御部386では、不正通知演出コマンドを受信すると、不正通知演出を行う。不正通知演出では、例えば、図柄表示部104に通常出現しないキャラクタを出現させたり、キャラクタを通常とは異なる方法で出現させたりする。また、図柄表示部104の輝度や色を変えたり、所定の点滅パターンでランプ384を点滅させたりしてもよい。これにより、パチンコホールの従業員がその状態を認識しやすい。また、不正通知演出は、遊技者がその状態を認識しにくい態様で行ってもよいし、逆に、遊技者が認識しやすい態様で行ってもよい。遊技者が認識しやすい態様で行えば、不正行為を中止することが期待できる。
ステップS718の処理が終了すると、一連の処理を終了して元の処理に復帰させる。
一方、ステップS714で、すべての検証値について照合が終了していないと判定したとき(No)は、ステップS710に移行する。
一方、ステップS702で、受信した制御コマンドがはずれ非リーチコマンドまたははずれリーチコマンドでないと判定したとき(No)は、ステップS718に移行して、ステップS700で受信した制御コマンドを受信バッファに格納し、一連の処理を終了して元の処理に復帰させる。
〔変動パターンコマンド処理〕
次に、ステップS602の変動パターンコマンド処理を説明する。
図14は、変動パターンコマンド処理を示すフローチャートである。
変動パターンコマンド処理は、ステップS602において実行されると、図14に示すように、まず、ステップS800に移行する。
ステップS800では、受信バッファの制御コマンドに基づいて変動パターンコマンドを受信したか否かを判定し、変動パターンコマンドを受信したと判定したとき(Yes)は、ステップS802に移行するが、そうでないと判定したとき(No)は、変動パターンコマンドを受信するまでステップS800で待機する。
ステップS802では、乱数カウンタから乱数を取得し、ステップS804に移行して、取得した乱数に基づいて、受信した変動パターンコマンドに対応する複数の変動演出のなかからいずれかを選択し、ステップS806に移行する。
ステップS806では、図柄表示部104、音声制御部382およびランプ制御部386に対して、選択した変動演出の開始を指定するための制御コマンド(変動演出開始コマンド)をそれぞれ送信する変動演出開始処理を実行する。
次いで、ステップS808に移行して、変動演出開始コマンドを送信してから所定時間(例えば、30秒)が経過したか否かを判定し、所定時間が経過していないと判定したとき(No)は、ステップS810に移行して、受信バッファの制御コマンドに基づいて図柄停止コマンドを受信したか否かを判定し、図柄停止コマンドを受信したと判定したとき(Yes)は、ステップS812に移行する。
ステップS812では、図柄表示部104、音声制御部382およびランプ制御部386に対して、変動演出の終了を指定するための制御コマンド(変動演出終了コマンド)をそれぞれ送信する変動演出終了処理を実行する。
ステップS812の処理が終了すると、一連の処理を終了して元の処理に復帰させる。
一方、ステップS810で、図柄停止コマンドを受信しないと判定したとき(No)は、ステップS808に移行する。
一方、ステップS808で、所定時間が経過したと判定したとき(Yes)は、ステップS812に移行する。
なお、乱数カウンタの更新は、主制御部200で採用される上記方法により行うことができる。ただし、更新方法は、主制御部200とは必ずしも同一でなくてもよい。
〔大当たりコマンド処理〕
次に、ステップS604の大当たりコマンド処理を説明する。
図15は、大当たりコマンド処理を示すフローチャートである。
大当たりコマンド処理は、ステップS604において実行されると、図15に示すように、まず、ステップS900に移行する。
ステップS900では、受信バッファの制御コマンドに基づいて大当たり開始コマンドを受信したか否かを判定し、大当たり開始コマンドを受信したと判定したとき(Yes)は、ステップS902に移行する。
ステップS902では、図柄表示部104、音声制御部382およびランプ制御部386に対して、大当たり演出の開始を指定するための制御コマンド(大当たり演出開始コマンド)をそれぞれ送信する大当たり演出開始処理を実行する。
次いで、ステップS904に移行して、受信バッファの制御コマンドに基づいてラウンド開始コマンドを受信したか否かを判定し、ラウンド開始コマンドを受信したと判定したとき(Yes)は、ステップS906に移行する。
ステップS906では、図柄表示部104、音声制御部382およびランプ制御部386に対して、ラウンド演出の開始を指定するための制御コマンド(ラウンド演出開始コマンド)をそれぞれ送信するラウンド演出開始処理を実行する。
次いで、ステップS908に移行して、受信バッファの制御コマンドに基づいてラウンド終了コマンドを受信したか否かを判定し、ラウンド終了コマンドを受信したと判定したとき(Yes)は、ステップS910に移行する。
ステップS910では、図柄表示部104、音声制御部382およびランプ制御部386に対して、ラウンド演出の終了を指定するための制御コマンド(ラウンド演出終了コマンド)をそれぞれ送信するラウンド演出終了処理を実行し、ステップS904に移行する。
一方、ステップS908で、ラウンド終了コマンドを受信しないと判定したとき(No)は、ステップS912に移行して、受信バッファの制御コマンドに基づいて大当たり終了コマンドを受信したか否かを判定し、大当たり終了コマンドを受信したと判定したとき(Yes)は、ステップS914に移行する。
ステップS914では、図柄表示部104、音声制御部382およびランプ制御部386に対して、大当たり演出の終了を指定するための制御コマンド(大当たり演出終了コマンド)をそれぞれ送信する大当たり演出終了処理を実行し、一連の処理を終了して元の処理に復帰させる。
一方、ステップS912で、大当たり終了コマンドを受信しないと判定したとき(No)は、ステップS908に移行する。
一方、ステップS904で、ラウンド開始コマンドを受信しないと判定したとき(No)は、ラウンド開始コマンドを受信するまでステップS904で待機する。
一方、ステップS900で、大当たり開始コマンドを受信しないと判定したとき(No)は、大当たり開始コマンドを受信するまでステップS900で待機する。
〔本実施の形態の動作〕
次に、本実施の形態の動作を説明する。
図16は、パチンコ機の認証動作のシーケンスを示す図である。
まず、パチンコ機に電源が投入されると、主制御部200では、ステップS102を経て、初期化処理が実行される。初期化処理では、電源オンコマンドが送信される。電源オンコマンドは、はずれ非リーチコマンドおよびはずれリーチコマンド以外の制御コマンドであるので、図16(点線枠外)に示すように、ステップS210を経て、暗号化認証データが付加されることなく演出制御部300および賞球制御部400にそのまま送信される。
演出制御部300では、電源オンコマンドを受信すると、図柄表示部104、音声制御部382およびランプ制御部386に対して、電源オン時の演出用の制御コマンド(具体的には、デモ画面の表示、ランプ384の点灯、音声の出力を指定するための制御コマンド)がそれぞれ送信される。
初期化処理が終了すると、主制御部200では、ステップS104〜S112を経て、入賞判定処理、大当たり判定処理、電動役物制御処理および制御コマンド送信処理が所定周期で繰り返し実行される。これにより、パチンコ機は、遊技可能な状態となる。遊技者は、貸し出しを受けた遊技球をパチンコ機に装填し、発射部482を操作して遊技球を遊技盤101に発射することにより遊技を行うことができる。
遊技者により発射された遊技球が始動入賞口105に入賞すると、主制御部200では、ステップS306、S312を経て、その入賞タイミングで大当たり決定乱数が取得される。そして、ステップS404、S406を経て、取得された乱数値が大当たり値と一致していれば、大当たりとなる。
大当たりとなると、ステップS410、S412を経て、大当たり時の停止図柄の態様および変動パターンが決定される。このとき、リーチ演出を行うことが決定されると、制御コマンド送信処理では、大当たり図柄を指定するための図柄指定コマンドおよび大当たりリーチコマンドが送信される。大当たりリーチコマンドは、はずれ非リーチコマンドおよびはずれリーチコマンド以外の制御コマンドであるので、図16(点線枠外)に示すように、ステップS210を経て、暗号化認証データが付加されることなく演出制御部300にそのまま送信される。
演出制御部300では、大当たりリーチコマンドを受信すると、ステップS802〜S812を経て、受信した大当たりリーチコマンドに基づいて大当たりリーチ変動時の処理が実行される。
主制御部200では、ステップS414、S424を経て、所定の変動パターンで演出図柄を変動表示させ、演出図柄の一部をリーチ図柄で停止させた後に大当たり図柄で演出図柄を停止させる。演出図柄が停止すると、制御コマンド送信処理では、大当たり開始コマンドが送信される。大当たり開始コマンドは、はずれ非リーチコマンドおよびはずれリーチコマンド以外の制御コマンドであるので、図16(点線枠外)に示すように、ステップS210を経て、暗号化認証データが付加されることなく演出制御部300にそのまま送信される。
演出制御部300では、大当たり開始コマンドを受信すると、ステップS902を経て、受信した大当たり開始コマンドに基づいて大当たり演出開始時の処理が実行される。
大当たり中は、最大ラウンド数を上限として所定条件を満たすまでラウンドが継続される。制御コマンド送信処理では、ラウンドの開始時および終了時に大当たりコマンドが送信される。大当たりコマンドは、大当たり開始コマンドおよび大当たり終了コマンド以外の制御コマンドであるので、図16(点線枠外)に示すように、ステップS210を経て、暗号化認証データが付加されることなく演出制御部300にそのまま送信される。
演出制御部300では、大当たりコマンドを受信すると、ステップS906、S910を経て、受信した大当たりコマンドに基づいて大当たり演出中の処理が実行される。
また、大当たり中は、大入賞口109が所定の開閉パターンで開放し、大入賞口109に遊技球が入賞すると、遊技球1個につき所定数の遊技球が賞球として払い出される。
そして、最終ラウンドが終了すると、制御コマンド送信処理では、大当たり終了コマンドが送信される。大当たり終了コマンドは、はずれ非リーチコマンドおよびはずれリーチコマンド以外の制御コマンドであるので、図16(点線枠外)に示すように、ステップS210を経て、暗号化認証データが付加されることなく演出制御部300にそのまま送信される。
演出制御部300では、大当たり終了コマンドを受信すると、ステップS914を経て、受信した大当たり終了コマンドに基づいて大当たり演出終了時の処理が実行される。
一方、ステップS404、S406を経て、取得された乱数値が大当たり値と一致しなければ、はずれとなる。
はずれとなると、ステップS418、S420を経て、はずれ時の停止図柄の態様および変動パターンが決定される。このとき、リーチ演出を行うことが決定されると、制御コマンド送信処理では、はずれ図柄(または、はずれ図柄となる旨)を指定するための図柄指定コマンドおよびはずれリーチコマンドが送信される。これに対し、リーチ演出を行わないことが決定されると、制御コマンド送信処理では、同図柄指定コマンドおよびはずれ非リーチコマンドが送信される。はずれリーチコマンドまたははずれ非リーチコマンドは、図16(点線枠内)に示すように、ステップS204〜S208を経て、暗号化認証データが付加されて演出制御部300に送信される。
はずれリーチコマンドまたははずれ非リーチコマンドの送信にあたっては、まず、検証値を含む認証データが生成される。そして、認証データは、複数の暗号化アルゴリズムのうちいずれかにより暗号化される。例えば、検証値が「0x12」である場合において、暗号化アルゴリズムAが選択されると、下式(1)により暗号化認証データ「0x21」が得られる。
0x21 = 0x12 xor 0x33 …(1)
演出制御部300では、はずれリーチコマンドまたははずれ非リーチコマンドを受信すると、ステップS704、S706を経て、受信したはずれリーチコマンドまたははずれ非リーチコマンドに付加されている暗号化認証データが取得され、取得された暗号化認証データが複数の復号化アルゴリズムによりそれぞれ復号化される。
第1に、上式(1)で得られた暗号化認証データ「0x21」を復号化アルゴリズムAにより復号化した場合は、下式(2)により検証値「0x12」が得られる。
0x12 = 0x21 xor 0x33 …(2)
第2に、上式(1)で得られた暗号化認証データ「0x21」を復号化アルゴリズムBにより復号化した場合は、下式(3)により検証値「0x56」が得られる。
0x56 = 0x21 xor 0x77 …(3)
検証値が得られると、ステップS708を経て、主制御部200で生成された検証値と同一の値となる期待値「0x12」が読み出される。そして、ステップS710、S714を繰り返し経て、復号化して得られた各検証値が期待値とそれぞれ照合される。このとき、上式(2)で得られた検証値「0x12」が期待値「0x12」と一致するので、認証が得られ、ステップS712を経て、はずれリーチコマンドまたははずれ非リーチコマンドが受信バッファに格納される。そして、ステップS802〜S812を経て、受信したはずれリーチコマンドまたははずれ非リーチコマンドに基づいてはずれ変動時の処理が実行される。
これに対し、主制御基板と演出制御基板との間に不正な制御基板が接続されるといった不正行為が行われた場合は、不正な制御基板がはずれリーチコマンドまたははずれ非リーチコマンドを演出制御基板に送信しても、演出制御部300では、はずれリーチコマンドまたははずれ非リーチコマンドに暗号化認証データが付加されていないので、検証値が期待値と一致せず、認証が得られない可能性が高い。その結果、ステップS716、S718を経て、受信した制御コマンドが破棄され、不正通知処理が実行される。
また、不正な制御基板が何らかの認証データを付加してはずれリーチコマンドまたははずれ非リーチコマンドを演出制御基板に送信しても、演出制御部300では、いずれの復号化アルゴリズムによっても適切な検証値が得られないので、検証値が期待値と一致せず、認証が得られない可能性が高い。
一方、遊技が中断されると、主制御部200では、客待ちデモ実行処理が実行される。そして、制御コマンド送信処理では、客待ちデモコマンドが送信される。客待ちデモコマンドは、はずれ非リーチコマンドおよびはずれリーチコマンド以外の制御コマンドであるので、図16(点線枠外)に示すように、ステップS210を経て、暗号化認証データが付加されることなく演出制御部300にそのまま送信される。
演出制御部300では、客待ちデモコマンドを受信すると、客待ちデモ開始時の処理として、図柄表示部104、音声制御部382およびランプ制御部386に対して客待ちデモ用の制御コマンドがそれぞれ送信される。
その後、遊技が再開されると、制御コマンド送信処理では、客待ちデモ停止コマンドが送信される。客待ちデモ停止コマンドは、はずれ非リーチコマンドおよびはずれリーチコマンド以外の制御コマンドであるので、図16(点線枠外)に示すように、ステップS210を経て、暗号化認証データが付加されることなく演出制御部300にそのまま送信される。
演出制御部300では、客待ちデモ停止コマンドを受信すると、客待ちデモ終了時の処理として、図柄表示部104、音声制御部382およびランプ制御部386に対して客待ちデモ用の制御コマンドがそれぞれ送信される。
〔本実施の形態の効果〕
このようにして、本実施の形態では、主制御部200は、複数の暗号化アルゴリズムのうちいずれかにより認証データを暗号化し、暗号化された暗号化認証データを付加してはずれ非リーチコマンドまたははずれリーチコマンドを演出制御部300に送信し、演出制御部300は、はずれ非リーチコマンドまたははずれリーチコマンドを受信し、主制御部200が使用する複数の暗号化アルゴリズムのそれぞれに対応する復号化アルゴリズムにより、受信したはずれ非リーチコマンドまたははずれリーチコマンドに付加されている暗号化認証データをそれぞれ復号化し、その復号化結果に基づいて認証を行う。
これにより、主制御部200では、暗号化認証データを付加してはずれ非リーチコマンドまたははずれリーチコマンドを送信し、演出制御部300では、主制御部200からの認証データに基づいて認証を行うので、従来に比して、主制御基板と演出制御基板との間に不正な制御基板が接続されるといった不正行為が行われる可能性を低減することができる。
また、演出制御部300では、複数の復号化アルゴリズムにより暗号化認証データがそれぞれ復号化され認証が行われるので、主制御部200および演出制御部300では、暗号化アルゴリズムおよび復号化アルゴリズムを選択するのに必要な情報を共有する必要がなく、主制御部200は、演出制御部300に依存しない任意の情報や規則等に基づいて暗号化アルゴリズムを選択することができる。また、はずれ非リーチコマンドまたははずれリーチコマンドそのものを暗号化するのではなく、はずれ非リーチコマンドまたははずれリーチコマンドに暗号化認証データを付加するので、認証データとしてはずれ非リーチコマンドまたははずれリーチコマンドの内容に依存しない任意のデータを採用することができる。したがって、従来に比して、セキュリティ強度を向上することができる。
さらに、パチンコ機に対しては、遊技機に関する規則の適用上、主制御部200のROM204のデータ容量に制約があるので、主制御部200に複雑な処理を行わせてセキュリティ強度を向上するには一定の限界がある。これに対し、本実施の形態では、暗号化処理を簡素化する一方で復号化処理を複雑化し、しかも複雑な復号化処理を、ROM304のデータ容量に制約が少ない演出制御部300に行わせるので、セキュリティ強度を向上することができる。
さらに、はずれ非リーチコマンドまたははずれリーチコマンドに暗号化認証データを付加して送信するので、暗号化認証データ単体で送信する場合に比して、通信データ中から暗号化認証データが抽出される可能性を低減することができる。
さらに、はずれ非リーチコマンドまたははずれリーチコマンドは、はずれ時に送信されるので、大当たり系の制御コマンドに比して送信頻度が高い。そのため、大当たり抽選の後に認証を行うという流れを基本とすることができる。大当たり時の遊技制御処理は、機種ごとに演出方法が変更されるなど、特殊な処理に区分されるが、はずれ時の遊技制御処理は、機種ごとの差異が少ない。したがって、はずれ時に認証を行うようにすれば、認証の流れに大きな変更を加えることがないので、他の機種への汎用性を向上することができる。
さらに、はずれ非リーチコマンドおよびはずれリーチコマンドの送信時に認証が行われるので、各制御コマンドの送信ごとに認証を行う場合に比して、主制御部200および演出制御部300の処理負荷を低減することができる。したがって、主制御部200または演出制御部300が高い処理能力を有していないパチンコ機や、処理負荷が大きいパチンコ機に対しても適用することができる。
さらに、本実施の形態では、主制御部200は、はずれ非リーチコマンドおよびはずれリーチコマンドの各送信ごとに暗号化アルゴリズムを選択する。
これにより、セキュリティ強度をさらに向上することができる。
さらに、本実施の形態では、主制御部200は、暗号化アルゴリズムの選択をランダムで行う。
これにより、セキュリティ強度をさらに向上することができる。
さらに、本実施の形態では、主制御部200は、ROM204の制御プログラムのデータに基づいて認証データを生成する。
これにより、正規の主制御基板を不正な主制御基板に取り替えたり、ROM204の制御プログラムを改ざんしたりといった不正行為が行われる可能性を低減することができる。
さらに、本実施の形態では、演出制御部300は、受信した制御コマンドがはずれ非リーチコマンドまたははずれリーチコマンドであるか否かを判定し、はずれ非リーチコマンドまたははずれリーチコマンドであると判定したときは、受信したはずれ非リーチコマンドまたははずれリーチコマンドに付加されている暗号化認証データを取得する。
これにより、演出制御部300では、各制御コマンドごとに暗号化認証データの取得を試みることなく、受信した制御コマンドがはずれ非リーチコマンドまたははずれリーチコマンドであると判定されたときに暗号化認証データを取得すればよいので、演出制御部300の処理負荷を低減することができる。
さらに、本実施の形態では、演出制御部300は、認証が得られなかったときに不正通知を行う。
これにより、不正行為が行われた可能性があることを把握することができる。
上記実施の形態において、はずれ非リーチコマンドおよびはずれリーチコマンドは、発明1、3、8、11ないし15のはずれコマンドに対応し、図柄表示部104は、発明1、11、13または15の図柄表示手段に対応し、ROM204は、発明6の記憶手段に対応している。また、ステップS204は、発明6の認証データ生成手段に対応し、暗号化部222およびステップS206は、発明1、3、4、6または11の暗号化手段に対応し、ステップS206は、発明13または15の暗号化ステップに対応している。
また、上記実施の形態において、送信部224およびステップS208は、発明1または11の送信手段に対応し、ステップS208は、発明13または15の送信ステップに対応し、ステップS306、S312、S404、S406は、発明1若しくは11の抽選手段、または発明13若しくは15の抽選ステップに対応している。また、ステップS412、S414、S420は、発明1若しくは11の変動表示制御手段、または発明13若しくは15の変動表示制御ステップに対応し、ステップS408、S410、S424は、発明1若しくは11の特賞状態発生手段、または発明13若しくは15の特賞状態発生ステップに対応している。
また、上記実施の形態において、受信部320およびステップS700は、発明1、8または12の受信手段に対応し、ステップS700は、発明14または15の受信ステップに対応し、ステップS702は、発明8の判定手段に対応し、ステップS704は、発明8の取得手段に対応している。また、復号化部322およびステップS706は、発明1、2、8または12の復号化手段に対応し、ステップS706は、発明14または15の復号化ステップに対応し、認証部324およびステップS708、S710、S714は、発明1、2、10または12の認証手段に対応している。
また、上記実施の形態において、ステップS708、S710、S714は、発明14または15の認証ステップに対応し、ステップS718は、発明10の通知手段に対応している。
〔他の実施の形態〕
なお、上記実施の形態において、主制御部200は、はずれ非リーチコマンドおよびはずれリーチコマンドの各送信ごとに暗号化アルゴリズムを選択するように構成したが、これに限らず、はずれ非リーチコマンドまたははずれリーチコマンドの所定の送信単位ごとに暗号化アルゴリズムを選択するように構成することもできる。
所定の送信単位ごとに選択する構成としては、例えば、はずれ非リーチコマンドまたははずれリーチコマンドをn(nは2以上の整数)回送信するごとに選択する構成、所定時間内に送信されるはずれ非リーチコマンドまたははずれリーチコマンドを単位としてその開始または終了ごとに選択する構成を採用することができる。
これにより、セキュリティ強度を向上することができる。
また、上記実施の形態において、主制御部200は、暗号化アルゴリズムの選択をランダムで行うように構成したが、これに限らず、所定順序若しくは所定周期で、または暗号化処理の回数に基づいて行うように構成することもできる。
所定順序で行う構成としては、例えば、暗号化アルゴリズムA、Bを交互に利用する構成を採用することができる。
所定周期で行う構成としては、例えば、暗号化処理をm(mは1以上の整数)回行うごとに暗号化アルゴリズムを変更する構成、n1(n1は1以上の整数)回の暗号化処理について暗号化アルゴリズムA、Bの一方を利用し、その後のn2(n2は1以上の整数)回の暗号化処理について暗号化アルゴリズムA、Bの他方を利用する構成を採用することができる。
暗号化処理の回数に基づいて行う構成としては、例えば、暗号化処理の回数がn(nは2以上の整数)の倍数のときは暗号化アルゴリズムA、Bの一方を利用し、それ以外のときは暗号化アルゴリズムA、Bの他方または任意の暗号化アルゴリズムを利用する構成を採用することができる。
これにより、セキュリティ強度を向上することができる。
また、上記実施の形態において、主制御部200は、暗号鍵A、Bに基づいて認証データを暗号化するように構成したが、これに限らず、動的に生成された情報その他の付加情報に基づいて認証データを暗号化するように構成することもできる。
付加情報が「0x01」である場合、上式(1)〜(3)は、下式(4)〜(6)のように変形することができる。
0x20 = (0x12+0x01) xor 0x33 …(4)
0x12 = (0x20 xor 0x33)−0x01 …(5)
0x56 = (0x20 xor 0x77)−0x01 …(6)
これにより、セキュリティ強度をさらに向上することができる。
付加情報をさらに具体化した例として、次の構成を採用することができる。
主制御部200は、主制御部200の動作シーケンスを示す動作確認情報を生成し、生成した動作確認情報に基づいて認証データを暗号化する。動作確認情報は、例えば、所定周期ごとにカウントアップされる値である。
演出制御部300は、主制御部200の動作に同期して動作確認情報を生成し、生成した動作確認情報に基づいて暗号化認証データを復号化する。
これにより、演出制御部300では、主制御部200の動作シーケンスが正常であることを認証することができるので、従来に比して、主制御基板内に設けられた不正なCPUが遊技中に正規のCPU202と置き換わって動作するように主制御基板が改造されるといった不正行為が行われる可能性を低減することができる。すなわち、不正なCPUが遊技中に正規のCPU202と置き換わって動作した場合は、動作確認情報の連続性が断たれるので、演出制御部300では、適切な検証値が得られない。したがって、検証値が期待値と一致せず、認証が得られない可能性が高い。
また、上記実施の形態において、主制御部200は、ROM204の制御プログラムのデータに基づいて認証データを生成するように構成したが、これに限らず、制御プログラムのデータ、および当該認証データを付加して送信されるはずれ非リーチコマンドまたははずれリーチコマンドに基づいて認証データを生成するように構成することもできる。また、制御プログラムのデータを用いず、当該認証データを付加して送信されるはずれ非リーチコマンドまたははずれリーチコマンドに基づいて認証データを生成するように構成することもできる。
これにより、演出制御部300では、はずれ非リーチコマンドまたははずれリーチコマンドが正規のものであることを認証することができるので、不正行為が行われる可能性をさらに低減することができる。
また、上記実施の形態において、主制御部200は、制御プログラムの一部または全部のデータに基づいて検証値を算出するように構成したが、これに限らず、制御プログラムの一部または全部のデータおよびその他のデータ(例えば、ROM204に記憶されている制御プログラム以外のデータ)に基づいて検証値を算出するように構成することもできる。
これにより、セキュリティ強度をさらに向上することができる。
また、上記実施の形態において、演出制御部300は、受信した制御コマンドがはずれ非リーチコマンドまたははずれリーチコマンドであるか否かを判定し、はずれ非リーチコマンドまたははずれリーチコマンドであると判定したときは、暗号化認証データを取得するように構成したが、これに限らず、受信した制御コマンドに暗号化認証データが付加されているか否かを判定し、暗号化認証データが付加されていると判定したときは、暗号化認証データを取得するように構成することもできる。
これにより、演出制御部300では、各制御コマンドごとに暗号化認証データの取得を試みることなく、受信した制御コマンドに暗号化認証データが付加されていると判定されたときに暗号化認証データを取得すればよいので、演出制御部300の処理負荷を低減することができる。
また、上記実施の形態において、主制御部200は、はずれ非リーチコマンドおよびはずれリーチコマンドの両方に暗号化認証データを付加するように構成したが、これに限らず、いずれか一方のみに付加するように構成することもできる。また、これに代えてまたは加えて、はずれ図柄(または、はずれ図柄となる旨)を指定するための図柄指定コマンドに付加するように構成することもできる。
また、上記実施の形態において、主制御部200は、はずれ非リーチコマンドおよびはずれリーチコマンドに暗号化認証データを付加するように構成したが、これに限らず、はずれ非リーチコマンドおよびはずれリーチコマンド以外の1または複数種類の制御コマンドに暗号化認証データを付加するように構成することもできる。他の制御コマンドとしては、例えば、電源オンコマンド、電源オフコマンド、客待ちデモコマンド、客待ちデモ停止コマンド、大当たりリーチコマンド、大当たり開始コマンド、大当たり終了コマンド、大当たりコマンド、図柄指定コマンド、変動開始コマンドおよび図柄停止コマンドが考えられる。
この場合、セキュリティ強度と処理負荷のバランスを考慮し、暗号化認証データを付加する制御コマンドを選択することができる。すなわち、送信頻度が高い制御コマンドであれば単位時間あたりの認証回数が多くなるので、処理負荷は大きくなるがセキュリティ強度は高くなる。逆に、送信頻度が低い制御コマンドであれば単位時間あたりの認証回数が少なくなるので、セキュリティ強度は低くなるが処理負荷は小さくなる。したがって、セキュリティ強度を高くしたい場面では、送信頻度の高い制御コマンドを選択し、処理負荷を小さくしたい場面では、送信頻度の低い制御コマンドを選択する。これらの場面は、例えば、所望に応じてテーブル等に設定し、主制御部200に保持させておけばよい。例えば、遊技者が所定数以上となる見込みの日または時間帯は、セキュリティ強度を高くしたい場面に設定し、それ以外の日または時間帯は、処理負荷を小さくしたい場面に設定することが考えられる。
また、上記実施の形態においては、固定的な暗号化アルゴリズムおよび復号化アルゴリズムを利用するように構成したが、これに限らず、動的な暗号化アルゴリズムおよび復号化アルゴリズムを利用するように構成することもできる。例えば、次の2つの構成を採用することができる。
(1)第1の構成
第1の構成は、暗号鍵Xに基づいて暗号化アルゴリズムfにより平文Aを暗号化して得られる暗号化認証データをf(A、X)と定義し、第1回目は、暗号鍵X1、X2に基づいてf(X1、X2)を生成し送信する。
第2回目は、平文A1(今回の認証データ)および暗号鍵X1、X2のいずれかに基づいてf(A1、X1orX2)を生成し送信する。演出制御部300では、第1回目の暗号化認証データを得ていなければ第2回目の暗号化認証データを復号化することはできない。
同様に、第3回目は、平文A2(今回の認証データ)、並びに暗号鍵X1、X2および平文A1のいずれかに基づいてf(A2、X1orX2orA1)を生成し送信する。演出制御部300では、第1回目および第2回目の暗号化認証データを得ていなければ第3回目の暗号化認証データを復号化することはできない。
これにより、演出制御部300で認証を得るためには、主制御部200から送信されるすべての暗号化認証データを演出制御部300が取得する必要があるので、セキュリティ強度をさらに向上することができる。
(2)第2の構成
第2の構成は、暗号鍵Xに基づいて暗号化アルゴリズムfにより平文Aを暗号化して得られる暗号化認証データをf(A、X)と定義し、第1回目は、平文A1(今回の認証データ)および暗号鍵X1に基づいてf(A1、X1)を生成し送信する。主制御部200および演出制御部300では、同一の暗号鍵生成アルゴリズムにより、平文A1および暗号鍵X1に基づいて暗号鍵X2を生成する。
第2回目は、平文A2(今回の認証データ)および暗号鍵X1、X2のいずれかに基づいてf(A2、X1orX2)を生成し送信する。主制御部200および演出制御部300では、同一の暗号鍵生成アルゴリズムにより、平文A1、A2および暗号鍵X1、X2のうち少なくとも2つに基づいて暗号鍵X3を生成する。
同様に、第3回目は、平文A3(今回の認証データ)および暗号鍵X1〜X3のいずれかに基づいてf(A3、X1orX2orX3)を生成し送信する。主制御部200および演出制御部300では、同一の暗号鍵生成アルゴリズムにより、平文A1〜A3および暗号鍵X1〜X3のうち少なくとも2つに基づいて暗号鍵X4を生成する。
これにより、演出制御部300で認証を得るためには、主制御部200から送信されるすべての暗号化認証データを演出制御部300が取得する必要があるので、セキュリティ強度をさらに向上することができる。
また、上記実施の形態においては、主制御部200と演出制御部300との間で認証を行うように構成したが、これに限らず、上記実施の形態と同様の要領により、主制御部200と賞球制御部400との間、演出制御部300と図柄表示部104、音声制御部382またはランプ制御部386との間で認証を行うように構成することができる。主制御部200と賞球制御部400との間で行う場合は、主制御部200は、はずれ非リーチコマンドおよびはずれリーチコマンドを賞球制御部400に送信する。
また、上記実施の形態においては、検証値が期待値と一致しているか否かを判定するように構成したが、これに限らず、検証値と期待値が所定関係にあるか否かを判定するように構成することもできる。ここで、所定関係とは、例えば、検証値が期待値と一致していること、検証値および期待値の一方を所定の演算方法により演算した演算値が他方と一致していること、検証値および期待値に大小関係その他の相関関係があることをいう。
また、上記実施の形態においては、はずれ非リーチコマンドまたははずれリーチコマンドの後に暗号化認証データを付加したが、これに限らず、はずれ非リーチコマンドまたははずれリーチコマンドの前に暗号化認証データを付加してもよいし、はずれ非リーチコマンドまたははずれリーチコマンドとの間に他のデータ(例えば、ダミーデータ)を介して暗号化認証データを付加してもよい。また、はずれ非リーチコマンドまたははずれリーチコマンドおよび暗号化認証データの一方を送信してから所定時間経過後に他方を送信してもよいし、暗号化認証データに代えて暗号化認証データへのアクセスに必要なアクセス情報(例えば、リンク情報)を付加等してもよい。
また、上記実施の形態において、演出制御部300は、はずれ非リーチコマンドおよびはずれリーチコマンドの各送信ごとに認証を行うように構成したが、これに限らず、認証データを保持しておき、所定のタイミングで、保持している複数の認証データに基づいて一括で認証を行うように構成することもできる。
例えば、演出制御部300は、第1はずれ非リーチコマンドとともに第1認証データを受信したときは、認証を行わずに、第1はずれ非リーチコマンドに基づく処理を行う。そして、演出制御部300は、第2はずれ非リーチコマンドとともに第2認証データを受信したときは、第2はずれ非リーチコマンドに基づく処理を行う前に、第1認証データを用いた認証を行う。このとき、演出制御部300は、第1認証データと第2認証データの両方を用いて認証を行ってもよい。このように、複数の認証データを受信した時点で認証を行えば、エラーによってはずれ非リーチコマンドに余分なデータが付加されてしまった場合等に、誤って認証が得られてしまう可能性を低減することができる。なお、はずれリーチコマンドについても同様に行うことができる。
また、上記実施の形態において、演出制御部300は、図柄表示部104、音声制御部382およびランプ制御部386に対して不正通知演出コマンドをそれぞれ送信するように構成したが、これに限らず、パチンコ機を管理する管理装置に不正通知信号を送信するように構成することもできる。このとき、不正通知信号には、「大当たり中」や「確率変動中」等のパチンコ機の遊技状態に関する遊技状態情報を含めることができる。そして、管理装置では、遊技状態情報に基づいて不正行為の有無を判定してもよい。例えば、大当たり中や確率変動中は、入賞が集中していても正常である場合がある。したがって、大当たり中や確率変動中は、その他の遊技状態とは異なる条件で不正行為の有無を判定するのが好ましい。また、遊技状態情報は、不正通知信号に含めずに別信号として送信してもよい。この場合、パチンコホールの従業員は、不正通知信号と遊技状態情報の両方に基づいて不正行為の有無を判定する。
また、上記実施の形態において、図7ないし図11のフローチャートに示す遊技制御処理を実行するにあたってはいずれも、ROM204にあらかじめ格納されている制御プログラムを実行する場合について説明したが、これに限らず、これらの手順を示したプログラムが記憶された記憶媒体から、そのプログラムをRAM206に読み込んで実行するようにしてもよい。図12ないし図15のフローチャートに示す演出制御処理についても同様である。
ここで、記憶媒体とは、RAM、ROM等の半導体記憶媒体、FD、HD等の磁気記憶型記憶媒体、CD、CDV、LD、DVD等の光学的読取方式記憶媒体、MO等の磁気記憶型/光学的読取方式記憶媒体であって、電子的、磁気的、光学的等の読み取り方法のいかんにかかわらず、コンピュータで読み取り可能な記憶媒体であれば、あらゆる記憶媒体を含むものである。
また、上記実施の形態においては、本発明をパチンコ機に適用した場合について説明したが、これに限らず、本発明の主旨を逸脱しない範囲で、パチスロ機、アミューズメントゲーム機その他の遊技機にも適用可能である。
101…遊技盤、 102a、102b…レール、 103…遊技領域、 104…図柄表示部、 105…始動入賞口、 106…入賞ゲート、 107…普通入賞口、 108…回収口、 109…大入賞口、 100…遊技制御装置、 200…主制御部、 202、302、402…CPU、 204、304、404…ROM、 206、306、406…RAM、 210、310、410…I/F、 220…認証データ生成部、 222…暗号化部、 224…送信部、 280…始動入賞口検出部、 282…ゲート検出部、 284…普通入賞口検出部、 286…大入賞口検出部、 288…大入賞口開閉部、 300…演出制御部、 308…VRAM、 320…受信部、 322…復号化部、 324…認証部、 326…通知部、 380…スピーカ、 382…音声制御部、 384…ランプ、 386…ランプ制御部、 400…賞球制御部、 480…払出部、 482…発射部、 500…制御コマンド、 502…暗号化認証データ