以下に添付図面を参照して、本発明にかかる電子機器の機能を有したぱちんこ遊技機と、このぱちんこ遊技機に搭載されている複数の基板間(主制御基板および周辺基板)の制御信号に含まれる制御コマンドを認証する認証方法および認証プログラムに好適な実施の形態を詳細に説明する。
(ぱちんこ遊技機の基本構成)
本発明のぱちんこ遊技機100は、図1に示す遊技盤101を備えている。遊技盤101の下部位置に配置された発射部292(図2参照)の駆動によって発射された遊技球は、レール102a,102b間を上昇して遊技盤101の上部位置に達した後、遊技領域103内を落下する。図示を省略するが、遊技領域103には、遊技球を各種の方向に向けて落下させる複数の釘が設けられている。遊技領域103には、遊技球の落下途中の位置に、遊技球の落下方向を変化させる風車や入賞口が配設されている。
遊技盤101の遊技領域103の中央部分には、図柄表示部104が配置されている。図柄表示部104としては、例えば液晶表示器(LCD)が用いられる。なお、図柄表示部104としては、LCDに限らず、CRT、複数のドラム、などを用いることができる。図柄表示部104の下方には、始動入賞させるための始動入賞口105が配設されている。図柄表示部104の左右には、それぞれ入賞ゲート106が配設されている。
入賞ゲート106は、落下する遊技球の通過を検出し、始動入賞口105を一定時間だけ開放させる抽選を行うために設けられている。図柄表示部104の側部や下方などには普通入賞口107が配設されている。普通入賞口107に遊技球が入賞すると、ぱちんこ遊技機100は普通入賞時の賞球数(例えば10個)の払い出しを行う。遊技領域103の最下部には、どの入賞口にも入賞しなかった遊技球を回収する回収口108が設けられている。
上述した図柄表示部104は、特定の入賞口に遊技球が入賞したとき(始動入賞時)に、複数の図柄の表示の変動を開始し、所定時間後に図柄の表示の変動を停止する。この停止時に特定図柄(例えば「777」など)に揃ったときに、ぱちんこ遊技機100は大当たり状態となる。そして、ぱちんこ遊技機100は、大当たり状態のとき、遊技盤101の下方に位置する大入賞口109を一定の期間開放させ、この期間開放を所定ラウンド(例えば15ラウンドなど)繰り返し、大入賞口109に入賞した遊技球に対応した賞球数を払い出す。
ぱちんこ遊技機100は、図2に示す制御部200を備えている。制御部200は、主制御部201と、演出制御部202と、賞球制御部203と、を有している。そして、主制御部201は本発明の主制御基板に相当し、演出制御部202と賞球制御部203とはそれぞれ本発明の周辺基板に相当している。そして、主制御部201は、ぱちんこ遊技機100の遊技にかかる基本動作を制御する。演出制御部202は、遊戯中の演出動作を制御する。賞球制御部203は、払い出す賞球数を制御する。
主制御部201は、CPU211と、ROM212と、RAM213と、インタフェース(I/F)214と、を有している。CPU211は、ROM212に記憶されたプログラムデータに基づき、遊技内容の進行に伴う基本処理を実行する。ROM212は、プログラムデータ等を記憶する記憶領域を有している。RAM213は、CPU211の演算処理時におけるデータのワークエリアとして機能する。I/F214は、各検出部221〜224から各種データを受信するとともに、演出制御部202及び賞球制御部203への各種データの送信を行う。主制御部201は、例えばいわゆる主制御基板によってその機能を実現する。
この主制御部201の入力側には、始動入賞口105に入賞した入賞球を検出する始動入賞口検出部221と、入賞ゲート106を通過した遊技球を検出するゲート検出部222と、普通入賞口107に入賞した遊技球を検出する普通入賞口検出部223と、大入賞口109に入賞した入賞球を検出する大入賞口検出部224と、がI/F214を介して電気的に接続されている。これらの検出部としては、近接スイッチなどを用いて構成できる。
この主制御部201の出力側には、大入賞口開閉部231が電気的に接続されており、主制御部201はこの大入賞口開閉部231の開閉を制御する。大入賞口開閉部231は、大当たり時に大入賞口109を一定期間開放する機能であり、ソレノイドなどを用いて構成できる。この大当たりは、生成した乱数(大当たり判定用乱数)に基づいて、所定の確率(例えば300分の1など)で発生するよう予めプログラムされている。
演出制御部202は、主制御部201から各種の制御コマンドを含む制御信号を受け取り、このコマンドに基づいて、ROM242に記憶されたプログラムデータを実行して遊技中における演出制御を行う。この演出制御部202は、CPU241と、ROM242と、RAM243と、VRAM244と、インタフェース(I/F)245と、を有している。CPU241は、ぱちんこ遊技機100に対応した演出処理を実行する。RAM243は、CPU241の演出処理時におけるデータのワークエリアとして機能する。VRAM244は、図柄表示部104に表示させる画像データ等を記憶する。I/F245は、主制御部201からの各種データの受信およびランプ制御部251や音声制御部252への各種データの送信を行う。演出制御部202は、例えばいわゆる演出基板によってその機能を実現する。また、演出制御部202の出力側には、上述した図柄表示部(LCD)104、ランプ制御部251、音声制御部252がI/F245を介して電気的に接続されている。ランプ制御部251はランプ261の点灯を制御する。また、音声制御部252はスピーカ262の音声等の出力を制御する。
賞球制御部203は、主制御部201から各種の制御コマンドを含む制御信号を受け取り、このコマンドに基づいて、ROM282に記憶されたプログラムデータを実行して賞球制御を行う。この賞球制御部203は、CPU281と、ROM282と、RAM283と、インタフェース(I/F)284と、を有している。CPU281は、賞球制御の処理を実行する。RAM283は、CPU281の演算処理時におけるデータのワークエリアとして機能する。I/F284は、主制御部201からの各種データの受信および発射部292との各種データの送受信を行う。賞球制御部203は、例えばいわゆる賞球基板によってその機能を実現する。
賞球制御部203は、I/F284を介して接続される払出部291に対して、入賞時の賞球数を払い出す制御を行う。また、賞球制御部203は、発射部292に対する遊技球の発射の操作を検出し、発射部292における遊技球の発射を制御する。払出部291は、遊技球の貯留部から所定数を払い出すためのモータなどからなる。賞球制御部203は、この払出部291に対して、各入賞口(始動入賞口105、普通入賞口107、大入賞口109)に入賞した遊技球に対応した賞球数を払い出す制御を行う。
発射部292は、遊技のための遊技球を発射するものであり、遊技者による遊技操作を検出するセンサと、遊技球を発射させるソレノイドなどを備える。賞球制御部203は、発射部292のセンサにより遊技操作を検出すると、検出された遊技操作に対応してソレノイドなどを駆動させて遊技球を間欠的に発射させ、遊技盤101の遊技領域103に遊技球を送り出す。
上記構成の主制御部201と演出制御部202と賞球制御部203は、それぞれ異なるプリント基板(主制御基板、演出基板、賞球基板)に設けられる。なお、ぱちんこ遊技機100の基板の構成は、これに限らず、例えば、賞球制御部203を、主制御部201又は演出制御部202と同一のプリント基板上に設けるなどの種々異なる構成とすることができる。
(主制御基板および周辺基板の機能的構成)
まず、図3を参照して、主制御部201としての機能を有する主制御基板310の機能的構成について説明する。主制御基板310は、周辺基板320を動作させるための制御コマンドを送信する機能部であり、データ記憶部311、決定部312、認証データ生成部313、ダミーデータ生成部314、送信部315によって構成される。そして、主制御基板310は周辺基板320と通信可能なように電気的に接続されている。
データ記憶部311は、本発明のデータ群記憶手段に相当し、所定のデータ群を記憶している。所定のデータ群とは、例えば、主制御基板310で用いられるプログラムデータ等である。データ記憶部311としては、例えば、主制御部201のROM212(図2参照)の一部を用いることができる。また、データ群は、プログラムデータの他に、予め定められた複数の認証用データなど種々異なる実施形態とすることができる。
決定部312は、本発明の決定手段に相当し、認証データ及び認証データのダミーデータの少なくとも一方を周辺部に送信する予め定められた複数種類の送信回数の各々に対応して設けられ、且つ、前記認証データの作成に用いる所定データを前記データ群の中から選択するために設けられた互いに異なる複数種類の選択パターンの中から、1つの選択パターンを決定する。そして、複数種類の選択パターンとは、主制御基板310と周辺基板320との間で予め定められた相異なる複数種類の選択パターンであり、複数種類の送信回数の各々に一対一に対応している。各選択パターンは、データ群の中から選択する所定データのアドレスデータ、所定データのアドレス範囲を示すテーブルデータ、等のデータを有して構成している。そして、決定部312は、認証データを周辺基板320に送信する場合に、複数種類の選択パターンの中から任意に決定する。また、送信回数としては、認証データ又はダミーデータの何れか一方の送信回数、認証データ及びダミーデータの各送信回数の合計の送信回数、等が挙げられる。
なお、本実施形態では、決定部312が認証データを送信するときに、複数種類の選択パターンの中から1つの選択パターンを任意に決定する場合について説明する。
主制御基板310が決定する選択パターンは主制御基板310のみが知る値であり、認証データの作成に用いた選択パターンが判明しない限り、不正解析者は送信回数を知ることはできない。これにより、ダミーデータの送信回数を解明できなければ、主制御基板310と周辺基板320との間に不正な制御部が挿入されると、不正な制御部と周辺基板との間で矛盾が生じるため、不正な制御部が挿入されたことを検知することができ、不正な制御部による不正な処理を防止することができる。
認証データ生成部313は、本発明の認証データ生成手段に相当し、決定部312で決定した選択パターンが示す前記所定データに基づいて、予め定められた認証方式の認証データを生成する。認証方式としては、例えば、チェックサム、パリティチェック、ハミングコードチェック、CRC(巡回冗長検査)、等の公知の誤り検出方法を用いることが可能であり、複数種類の認証方式を任意のタイミングで切り替えてもよい。また、本実施形態では認証データをその送信時に生成する場合について説明するが、本発明はこれに限定するものではなく、例えば、ぱちんこ遊技機100の起動時、予め定められた生成タイミング等に複数種類の選択パターンの各々に対応した認証データを生成して記憶しておき、該記憶している認証データを送信する際に、選択パターンに対応した認証データを用いる実施形態とすることもできる。このような実施形態とすれば、主制御基板310の処理負担を軽減することができる。
ダミーデータ生成部314は、本発明のダミーデータ生成手段に相当し、認証データのダミーデータを生成する。ダミーデータは、正規の認証データが不正解析者によって区別される又は解析されるのを防止するために、周辺基板320に送信されるデータである。ダミーデータと認証データは、不正解析者からは区別がつかないように生成する必要があり、例えば、決定部312が決定した送信回数分のダミーデータを生成してもよいし、1つの認証データを生成して複数回送信するようにしてもよい。そして、ダミーデータ生成部314は、認証データとダミーデータとを識別できない形式で生成する。例えば、認証データとダミーデータとを同一のデータ構造で生成したり、認証データとは異なる認証方式のダミー認証データとして生成する。
送信部315は、本発明の送信手段に相当し、認証データ生成部313が生成した認証データと、ダミーデータ生成部314が生成したダミーデータを周辺基板320に送信する。そして、送信部315は、例えば、主制御基板310から周辺基板320に送信される制御信号に認証データ又はダミーデータを付加することにより、認証データ又はダミーデータを周辺基板320に送信する。
続いて、上述した演出制御部202や賞球制御部203などの周辺部としての機能を有する周辺基板320の機能的構成について説明する。図3に示すように、周辺基板320は、受信部321、期待値記憶部322、認証部323、特定部324を有して構成される。
受信部321は、本発明の受信手段に相当し、主制御基板310によって送信された認証データやダミーデータを受信する。受信部321は、例えば、認証データやダミーデータが付加された制御信号を受信することによって、認証データやダミーデータを主制御基板310から受信する。
期待値記憶部322は、本発明の期待値データ記憶手段に相当し、前記複数種類の選択パターンの各々に対応した前記規定値データを複数記憶する。即ち、ぱちんこメーカー等がぱちんこ遊技機100に対して複数種類の選択パターン毎に所定の認証方式の認証データを予め演算し、該認証データを期待値データとして期待値記憶部322に予め記憶しておく。また、複数種類の認証方式を用いる場合、各認証方式毎に全ての選択パターンに対応した期待値データを記憶しておく。
認証部323は、本発明の認証手段に相当し、主制御基板310から受信した認証データと前記複数種類の期待値データとが一致するか否かに基づいて主制御基板310の認証を行う。より詳細には、複数の期待値データの中に認証データと一致するものがあるか否かを判定する。認証部323は、認証データと期待値データが一致する場合に主制御基板310の認証を成立させ、また、一致しない場合に不成立とする。
特定部324は、本発明の選択パターン特定手段及び送信回数特定手段に相当し、認証部323によって主制御基板310の認証が成立した場合に、該認証で用いた認証データの生成に用いられた上記選択パターンを特定する。そして、特定部324は、特定した選択パターンに対して予め定められた、主制御基板310が周辺基板320に送信するダミーデータ及び認証データの少なくとも一方の送信回数を特定する。
そして、認証部323は、特定部324が送信回数を特定すると、該特定した送信回数に基づいて、主制御基板310が送信した認証データとダミーデータとを識別し、該認証データに基づいて主制御基板310の認証を行う。なお、認証方法の一例については後述する。
また、本実施形態では、主制御基板310のCPU211が請求項中の第1コンピュータ、周辺基板320のCPU241,281の各々が請求項中の第2コンピュータとして機能させる場合について説明する。そして、主制御基板310のROM212は、前記第1コンピュータを請求項中の決定手段、認証データ生成手段、ダミーデータ生成手段、送信手段、等の各種手段として機能させるための主制御側認証プログラムを記憶している。また、周辺基板320のROM242、282の各々は、前記第2コンピュータを請求項中の受信手段、認証手段、選択パターン特定手段、送信回数特定手段、等の各種手段として機能させるための周辺側認証プログラムを記憶している。即ち、主制御側認証プログラムと周辺側認証プログラムによって本発明の認証プログラムを構成している。
(ぱちんこ遊技機の基本動作)
上記構成によるぱちんこ遊技機100の基本動作の一例を説明する。主制御部201は、各入賞口に対する遊技球の入賞状況を制御コマンドとして賞球制御部203に出力する。賞球制御部203は、主制御部201から出力された制御コマンドに応じて、入賞状況に対応した賞球数の払い出しを行う。
また、主制御部201は、始動入賞口105に遊技球が入賞するごとに、対応する制御コマンドを演出制御部202に出力し、演出制御部202は、図柄表示部104の図柄を変動表示させ、停止させることを繰り返す。そして、主制御部201は、大当たりの発生が決定しているときには、対応する制御コマンドを演出制御部202に出力し、演出制御部202は、所定の図柄で揃えて変動表示を停止させるとともに、大入賞口109を開放する制御を行う。演出制御部202は、大当たり発生期間中、および大当たり発生までの間のリーチ時や、リーチ予告時などには、図柄表示部104に対して、図柄の変動表示に加えて各種の演出表示を行う。このほか、各種役物に対して特定の駆動を行ったり、ランプ261の表示状態を補正するなどの演出を行う。
そして、主制御部201は、大当たり発生期間中に、大入賞口109を複数回開放させる。1回の開放が1ラウンドとして、例えば15回のラウンドが繰り返し実行される。1ラウンドの期間は、遊技球が大入賞口109に例えば10個入賞するまでの期間、あるいは所定期間(例えば30秒)とされている。この際、賞球制御部203は、大入賞口109に対する遊技球1個の入賞当たり、例えば15個の賞球数で払い出しを行う。ぱちんこ遊技機100は、大当たり終了後、この大当たり状態を解除し、通常の遊技状態に復帰する。
(各制御部による処理の詳細)
次に、各制御部が行う各種処理の詳細について説明する。まず、主制御部201による演出制御部202の制御処理について説明する。なお、図4〜図9においては、演出制御部202の制御処理の手順を明確にするため、ダミーデータ、認証データおよび付随データについては考慮しないものとする。即ち、図4〜図9の説明において、「コマンドを送信する」とは、「当該コマンドを示すデータ(制御コマンドデータ)を含む制御信号を送信する」との意味であり、例えばダミーデータや認証データや付随データの有無は考慮しないものとする。
主制御部201は、図4に示すステップS401において、ぱちんこ遊技機100の電源がオンされたか否かを判定する。主制御部201は、電源がオンされていないと判定した場合(S401:No)、この判定処理を繰り返すことで、ぱちんこ遊技機100の電源がオンされるまで待機する。一方、主制御部201は、電源がオンされたと判定した場合(S401:Yes)、ステップS402の処理に移行する。
主制御部201は、ステップS402において、演出制御部202や賞球制御部203などの各周辺部に対して電源オンコマンドを送信し、ステップS403の処理に移行する。この処理によって電源オンコマンドが送信されると、演出制御部202は、ランプ制御部251や音声制御部252、図柄表示部104のそれぞれに対して電源オン時の演出用の制御コマンド(具体的には、ランプの点灯や音声の出力、デモストレーション(デモ)画面の表示などを指示する制御コマンド)を送信する。
主制御部201は、ステップS403において、ROM212またはRAM213に記憶している未抽選入賞回数データを参照して、未抽選入賞回数が0回か否かを判別する。未抽選入賞回数とは、始動入賞口105に検出された入賞球の数(入賞回数)から、入賞球に対応する抽選が行われた回数(既抽選回数)を減じた数である。そして、主制御部201は、未抽選入賞回数が0回ではないと判定した場合(S403:No)、ステップ410の処理に移行する。一方、主制御部201は、未抽選入賞回数が0回であると判定した場合(S403:Yes)、ステップS404において、デモが開始されてから経過した時間を計測し、ステップS405の処理に移行する。
主制御部201は、デモが開始されてから所定時間が経過したか否かを判定する。主制御部201は、デモが開始されてから所定時間が経過していないと判定した場合(S405:No)、ステップS407の処理に移行する。一方、主制御部201は、デモが開始されてから所定時間が経過したと判定した場合(S405:Yes)、ステップS406において、演出制御部202に客待ちデモコマンドを送信し、ステップS407の処理に移行する。
主制御部201は、ステップS407において、始動入賞口検出部221によって入賞球が検出されたか否かを判定する。主制御部201は、入賞球が検出されていないと判定した場合(S407:No)、ステップS404の処理に戻り、一連の処理を繰り返す。一方、主制御部201は、入賞球が検出されたと判定した場合(S407:Yes)、ステップS408において、デモが開始されてから計測していた時間をクリアし、ステップS409において、未抽選入賞回数に1を加算し、ステップS410の処理に移行する。そして、主制御部201は、ステップS410において、大当たり判定用乱数を取得し、ステップS411において、未抽選入賞回数から1を減算し、図5に示すステップS412の処理に移行する。
主制御部201は、ステップS412において、大当たり判定用乱数が大当たり乱数であるか否かを判定する。主制御部201は、大当たり乱数であると判定した場合(S412:Yes)、ステップS413において、演出制御部202に大当たりリーチコマンド(図柄変動コマンド)を送信する。そして、主制御部201は、ステップS414において、図柄変動時間が経過したか否かを判定する。主制御部201は、図柄変動時間が経過していないと判定した場合(S414:No)、この判定処理を繰り返すことで、図柄変動時間が経過するのを待つ。一方、主制御部201は、図柄変動時間が経過したと判定した場合(S414:Yes)、ステップS415において、演出制御部202に図柄停止コマンドを送信し、ステップS416の処理に移行する。
主制御部201は、ステップS416において、演出制御部202に大当たり開始コマンドを送信し、続けて、ステップS417において、大当たり中の各ラウンドに対応するコマンド(大当たりコマンド)を演出制御部202に順次送信する。そして、主制御部201は、全てのラウンドの大当たりコマンドの送信が終了すると、ステップS418において、大当たり終了コマンドを演出制御部202に送信し、ステップS422の処理に移行する。
また、主制御部201は、ステップS412において、大当たり乱数ではないと判定した場合(S412:No)、ステップS419において、はずれリーチコマンド(図柄変動コマンド)を演出制御部202に送信し、ステップS420の処理に移行する。そして、主制御部201は、ステップS420において、図柄変動時間が経過したか否かを判定する。主制御部201は、図柄変動時間が経過していないと判定した場合(S420:No)、この判定処理を繰り返すことで、図柄変動時間の経過を待つ。一方、主制御部201は、図柄変動時間が経過したと判定した場合(S420:Yes)、ステップS421において、図柄停止コマンドを演算制御部202に送信し、ステップS422の処理に移行する。
主制御部201は、ステップS422において、ぱちんこ遊技機100の電源がオフされたか否かを判定する。主制御部201は、電源がオフされていないと判定した場合(S422:No)、図4に示すステップS403の処理に戻り、一連の処理を繰り返す。一方、主制御部201は、電源がオフされたと判定した場合(S422:Yes)、ステップS423において、終了処理コマンドを演出制御部202に送信し、本フローチャートによる処理を終了する。
次に、ぱちんこ遊技機100における大当たり関連コマンド(大当たりリーチコマンド、大当たり開始コマンド、大当たりコマンド、大当たり終了コマンド)の主制御部201から演出制御部202に対する送信タイミングの一例を、図6の図面を参照して説明する。
大当たりリーチコマンドは、実際に大当たりが発生するよりも頻繁に、且つランダムに送信される。また、大当たり開始コマンドは、実際に大当たりが発生した場合に、大当たり状態に移行する際に1度だけ送信される。また、大当たりコマンドは、大当たり状態に移行した後、ラウンド毎に継続的に送信される。また、大当たり終了コマンドは、大当たり状態の全てのラウンドが終了し、通常の状態に移行する際に1度だけ送信される。
以下では、図柄変動時(大当たりリーチコマンド(図5のステップS413を参照)または、はずれリーチコマンド(図5のステップS419を参照)を受信した場合)及び、大当たり時の処理を説明する。
まず、演出制御部202による図柄変動処理について、図7に示すフローチャートを参照して説明する。演出制御部202は、図7に示すステップS701において、主制御部201から図柄変動コマンドを受信したか否かを判定する。演出制御部202は、図柄変動コマンドを受信していないと判定した場合(S701:No)、この判定処理を繰り返すことで、図柄変動コマンドの受信を待つ。一方、演出制御部202は、図柄変動コマンドを受信したと判定した場合(S701:Yes)、ステップS702において、変動演出選択用乱数を取得し、ステップS703において、取得した乱数に基づいて変動演出の種類を選択し、ステップS704の処理に移行する。そして、演出制御部202は、ステップS704において、ランプ制御部251や音声制御部252に対して変動演出別の演出開始コマンドを送信し、ステップS705の処理に移行する。
演出制御部202は、ステップS705において、演出時間が経過したか否かを判定する。演出制御部202は、演出時間が経過したと判定した場合(S705:Yes)、ステップS707の処理に移行する。一方、演出制御部202は、演出時間が経過していないと判定した場合(S705:No)、ステップS706において、主制御部201から図柄停止コマンドを受信したか否かを判定する。そして、演出制御部202は、図柄停止コマンドを受信していないと判定した場合(S706:No)、ステップS705の処理に戻り、一連の処理を繰り返す。一方、演出制御部202は、図柄停止コマンドを受信したと判定した場合(S706:Yes)、ステップS707において、ランプ制御部251や音声制御部252に対して演出停止コマンドを送信し、本フローチャートによる処理を終了する。
続いて、演出制御部202による大当たり時処理について、図8に示すフローチャートを参照して説明する。演出制御部202は、図8に示すステップS801において、主制御部201から大当たり開始コマンド(図5のステップS416を参照)を受信したか否かを判定する。演出制御部202は、大当たり開始コマンドを受信していないと判定した場合(S801:No)、この判定処理を繰り返すことで、大当たり開始コマンドの受信を待つ。一方、演出制御部202は、大当たり開始コマンドを受信したと判定した場合(S801:Yes)、ステップS802において、ランプ制御部251や音声制御部252に対して大当たり開始処理コマンドを送信し、ステップS803の処理に移行する。
演出制御部202は、ステップS803において、主制御部201からラウンド別の大当たりコマンド(図5のステップS417を参照)を受信したか否かを判定する。演出制御部202は、大当たりコマンドを受信していないと判定した場合(S803:No)、この判定処理を繰り返すことで、大当たりコマンドの受信を待つ。一方、演出制御部202は、大当たりコマンドを受信したと判定した場合(S803:Yes)、ステップS804において、ランプ制御部251や音声制御部252に対して受信したラウンド別の大当たりコマンドに対応するラウンド別処理コマンドを送信し、ステップS805の処理に移行する。
演出制御部202は、ステップS805において、主制御部201から大当たり終了コマンド(図5のステップS418を参照)を受信したか否かを判定する。演出制御部202は、大当たり終了コマンドを受信していないと判定した場合(S805:No)、この判定処理を繰り返すことで、大当たり終了コマンドの受信を待つ。一方、演出制御部202は、大当たり終了コマンドを受信したと判定した場合(S805:Yes)、ステップS806において、ランプ制御部251や音声制御部252に対して大当たり終了処理コマンドを送信し、本フローチャートによる処理を終了する。
続いて、ランプ制御部251によるランプ制御処理について、図9に示すフローチャートを参照して説明する。ここでは、演出制御部202から演出開始コマンドを受信した場合(図柄変動時)の処理について説明する。そして、ランプ制御部251は、図9に示すステップS901において、演出制御部202から演出開始コマンドを受信したか否かを判定する。ランプ制御部251は、演出開始コマンドを受信していないと判定した場合(S901:No)、この判定処理を繰り返すことで、演出開始コマンドの受信を待つ。一方、ランプ制御部251は、演出開始コマンドを受信したと判定した場合(S901:Yes)、ステップS902において、コマンド別に予め用意されているコマンド別データを読み出し、ステップS903の処理に移行する。
ランプ制御部251は、ステップS903において、コマンド別の選択ルーチンを実行し、ステップS904において、受信した演出開始コマンドに対応したランプデータをセットし、ステップS805において、ランプ261に対してランプデータを出力し、ステップS906の処理に移行する。そして、この処理によってランプ261は、ランプデータに基づいて点灯又は消灯する。
ランプ制御部251は、ステップS906において、演出制御部202から演出停止コマンドを受信したか否かを判定する。ランプ制御部251は、演出停止コマンドを受信していないと判定した場合(S906:No)、この判定処理を繰り返すことで、演出停止コマンドの受信を待つ。一方、ランプ制御部251は、演出停止コマンドを受信したと判定した場合(S906:Yes)、ステップS907において、ランプデータの出力を停止し、本フローチャートによる処理を終了する。
なお、図9にはランプ制御部251の処理を記載したが、音声制御部252による音声制御も、図9の処理とほぼ同様である。音声制御部252による音声制御処理は、例えば、図9の処理において、ステップS904、S905、S907の「ランプデータ」を「音声データ」と読み替えればよい。
このように、演出制御部202や賞球制御部203などの周辺部は、主制御部201によって出力された制御コマンドに基づいて各種の処理を行う。一方、例えば、主制御部201と周辺部との間に不正な制御基板が接続された場合などのように、制御コマンドの出力元が正規の主制御部201ではない場合、周辺部は不正な制御基板から出力された不正な制御コマンドによって不正な動作を行ってしまう。
このような不正を防止するため、本実施の形態に係るぱちんこ遊技機100では、主制御部201と周辺部との間で認証処理を行う。より詳細には、周辺部を認証者、主制御部201を被認証者とした認証処理を行い、主制御部201から送信される制御信号の正当性を認証する。この認証処理に用いる認証値(認証データ)は、主制御部201に記憶されているデータ群の中から選択した所定データに基づいて生成されている。この認証処理によって、主制御部201が不正な制御基板に交換されたり、主制御部201と周辺部との間に不正な制御基板が取り付けられるなどの不正を検知して、ぱちんこ遊技機100への不正を防止することができる。
まず、主制御部201が認証データ又はダミーデータを制御コマンドデータに付加して送信する。認証データ又はダミーデータを制御コマンドデータに付加することによって、認証データ単体で送信する場合と比較して、主制御部201と周辺部との間の通信付加の増大を抑えている。また、認証データ又はダミーデータを制御コマンドデータに付加することによって、認証データ又はダミーデータを単体で送信する場合と比較して、通信データ中から認証データ又はダミーデータが抽出され、解析されてしまう可能性を低減させている。以下に認証データ又はダミーデータと制御コマンドデータを含む制御信号のフォーマットについて説明する。
(制御信号のデータフォーマット)
次に、主制御部201が出力する通常の制御信号、認証データ付制御信号、及び、ダミーデータ付制御信号の一例を説明する。
図10に示すように、主制御部201が出力する通常の制御信号1010には、制御コマンドデータ1001および付随データ1002が含まれている。制御コマンドデータ1001は、たとえば大当たりリーチコマンドや大当たり開始コマンド、ラウンド別コマンドなどの各コマンド固有のデータである。また、付随データ1002は、制御コマンドデータ1001に付随するデータであり、たとえば、入賞した遊技球の数など制御コマンドデータ1001に基づく処理に必要なデータである。
また、主制御部201は、制御信号内の制御コマンドデータ1001が特定の種類のコマンドである場合、制御コマンドデータ1001及び付随データ1002に加え、認証データ1003またはダミーデータ1004を含んだ、認証データ付制御信号1020またはダミーデータ付制御信号1030を周辺部に出力する。
なお、認証データ1003またはダミーデータ1004を含んだ制御信号を出力するのは、所定の種類の制御コマンドでもよいし、コマンドの種類に関わらず電源オンコマンドから所定回数目のコマンドでもよい。また、所定の制御コマンドの全てに認証データ1003またはダミーデータ1004を付加してもよいし、所定の制御コマンドのうちのいずれかに認証データ1003またはダミーデータ1004を付加してもよい。
このように、認証データ1003またはダミーデータ1004を制御信号に含めることによって、認証データ単体またはダミーデータ単体で送信する場合と比較して、主制御部201と周辺部との間の通信負荷を減らすことができる。また、認証データ1003またはダミーデータ1004を制御信号に含めることによって、認証データ1003またはダミーデータ1004を単体で送信する場合と比較して、通信データ中から認証データ1003またはダミーデータ1004が抽出され、解析されてしまう可能性を低減することができる。また、認証処理は、所定の制御コマンドを送信するときにのみ行われるため、全ての制御コマンドを送信するときに認証処理を行うのと比べると、認証処理による主制御基板310や周辺基板320の処理負荷を減らすことができる。
認証データ1003は、周辺部が保持している期待値データと照合することで、制御コマンドデータ1001および付随データ1002が正規の主制御部201から出力されたものであることを、認証するためのデータである。認証データ1003は、たとえば、主制御部201のROM212に記録されたプログラムデータを元に生成された値である。より具体的には、認証データ1003は、たとえば、ROM212に記録されたプログラムデータの全てまたは一部に対して、ハッシュ関数による演算やパリティチェック、巡回冗長検査(Cyclic Redundancy Check:CRC)、チェックサムなどの、誤り検出演算をおこなって得られた値(以下、「プログラムコード認証値」という)を、所定の暗号化方式で暗号化した値である。
このように、認証データ1003は、主制御部201のROM212に記録されたプログラムデータを用いて生成される。このため、周辺部は、認証データ1003を期待値データと照合させることで認証を行うことによって、制御信号の出力元が正規の主制御部201であるか否かを判断することができる。また、主制御部201のROM212に記録されたプログラムコードの不正な書き換えや、主制御部201のROM212の不正な取り替えなどを検出することができる。よって、本実施の形態では、ROM212に記憶しているプログラムデータが請求項中のデータ群に相当することから、ROM212が請求項中のデータ群記憶手段として機能する。
なお、主制御部201は、それぞれの制御信号に対して異なる認証データ1003を生成するものとする。具体的には、たとえば、認証データ1003を生成するために用いるROM212内のプログラムコードの範囲を異ならせたり、認証データ1003を生成するための誤り検出演算を異ならせるようにする。また、認証データ1003を生成するにあたって用いるデータは、プログラムコードに限らず、ROM212に記録された任意のデータであってもよい。
ダミーデータ1004は、認証データ1003のダミーデータであり、正規の認証データ1003の送信タイミングを不正解析者によって解析されるのを防止するために送信されるデータである。通常の制御信号1010は、認証データ1003が含まれていないため、認証データ付制御信号1020よりもデータサイズが小さくなる。このため、認証データ1003が付加された制御信号が不正解析者によって見破られやすくなり、これらのデータが窃取されやすくなる。このような問題を防ぐために、認証データ1003を含まない通常の制御信号1010に、認証データ1003と同程度のサイズのダミーデータ1004を付加して、ダミーデータ付制御信号1030としている。
このため、ダミーデータ1004と認証データ1003とは、少なくとも不正解析者からは区別がつかないように生成される。なお、ダミーデータ1004は、例えば、主制御部201と周辺部との間で行う認証処理とは異なる他の認証処理に用いる認証データであってもよい。
また、周辺部において、正規の認証データ1003を受信した際の処理量と、ダミーデータ1004を受信した際の処理量が異なると、どのタイミングで認証データ1003を送信しているかを不正解析者に知られてしまう可能性がある。このため、例えば、ダミーデータ1004を用いて主制御部201を仮に認証するダミー処理を行うようにして、周辺部における処理量が変動しないようにしてもよい。
主制御部201がダミーデータ1004を周辺部に送信する送信回数は、ランダムに決定しても良いし、予め定められた法則に基づいて決定しても良い。例えば、予め定められた複数種類の送信回数の中から乱数等を用いて1つの送信回数を決定する。そして、ダミーデータ1004の送信回数が3回の場合、選択パターンに基づいて生成した認証データ1003を送信した後、3つのダミーデータ1004を周辺部に送信することになる。
また、認証データ1003には、認証データ1003とともに送信される制御コマンドデータ1001や付随データ1002に関するデータを含ませてもよい。制御コマンドデータ1001や付随データ1002に関するデータとは、制御コマンドデータ1001や付随データ1002そのものや、制御コマンドデータ1001や付随データ1002に対して上述したような誤り検出方式を用いた演算をおこなって得られた値などである。
一般に、不正な制御基板は、正規の主制御部201と異なる制御コマンドを送信することによって、周辺部に不正な動作をおこなわせようとする。認証データ1003やダミーデータ1004とともに送信する制御コマンドデータ1001や付随データ1002を用いて認証データ1003やダミーデータ1004を生成すれば、不正な制御基板によって認証データ1003やダミーデータ1004が再利用された場合であっても、認証データ1003やダミーデータ1004と制御コマンドデータ1001の整合がとれず、不正を検知することができる。
認証データ1003やダミーデータ1004に制御コマンドデータ1001や付随データ1002に関するデータを含ませる場合、主制御部201は制御コマンドデータ1001や付随データ1002に関するデータとプログラムコード認証値とを合わせて暗号化して、認証データ1003やダミーデータ1004を生成する。
なお、制御コマンドデータ1001、付随データ1002、認証データ1003またはダミーデータ1004の並び方は、図10に示す順番に限らず、たとえば認証データ1003またはダミーデータ1004を制御信号の先頭にしたり、制御コマンドデータ1001と付随データ1002との間に認証データ1003またはダミーデータ1004を挿入したりしてもよい。
(認証データの生成方法)
図11において、認証データ1003は、主制御部201のROM212などのプログラムデータ格納部1100に格納されたデータ群1100aに基づいて生成する。プログラムデータ格納部1100は、ROM212内の記憶領域に対して予め定められた所定の格納領域となっている。データ群1100aは、プログラムデータ格納部1100に格納された複数のデータの集まり、即ち、プログラムデータとなっている。本実施形態のデータ群1100aは、ROM212に記憶されたプログラムデータ(命令データや固定データなど)を任意に用いている。そして、主制御部201のROM212に記憶されたプログラムデータをデータ群1100aとして用いることによって、主制御部201のROM212の不正な取り替えなどがあった場合、正規の選択データを生成することができないため、プログラムコードの不正な書き換えや不正を検知又は防止することを可能としている。
主制御部201は、ぱちんこ遊技機100において予め定められた複数種類の送信回数をROM212等に記憶しており、該複数種類の送信回数の各々には異なる複数種類の選択パターンが割り振られている。例えば、図12に示すように、「1回送信」、「2回送信」、「3回送信」の3つの送信回数に対して、異なる3つの選択パターンを設定する場合、「1回送信」=選択パターンP1、「2回送信」=選択パターンP2、「3回送信」=選択パターンP3、・・・となる。また、ダミーデータ1004を送信しない場合を設けたい場合は、送信回数0回とそれに対応する選択パターンを用いることで対応できる。
そして、本実施形態では、「1回送信」は認証データ1003を送信した後にダミーデータ1004を1回送信する、「2回送信」は認証データ1003を送信した後にダミーデータ1004を2回送信する、「3回送信」は認証データ1003を送信した後にダミーデータ1004を3回送信する、とそれぞれ定義している。
このように送信回数が、主制御部201におけるダミーデータ1004の送信回数の場合について説明するが、これに代えて、種々異なる実施形態とすることができる。例えば、送信回数を、認証データの送信回数、1又は複数の特定の制御コマンドのみの送信回数、等の任意の送信に限定することもできる。
また、主制御部201は、複数種類の選択パターンP1〜P3の中から1つの選択パターンを決定すると、該決定した選択パターンで、データ群1100aの中から複数の所定データ1100bを抽出し、該複数の所定データ1100bに基づいて所定の認証方式に対応した認証データを生成する。なお、認証方式としては、例えば、チェックサム、パリティチェック、ハミングコードチェック、CRC(巡回冗長検査)、等の公知の誤り検出方法を認証方式として用いることができる。また、認証データを暗号化するか否かは任意であるが、暗号化することによって不正な制御基板による選択データの再利用、解析などの防止が期待できるため、不正防止の観点から暗号化することが望ましい。
ここで、例えば、図11に示すプログラムデータ格納部1100には、12個のデータ(0x01〜0x09,0x0A〜0x0C)がデータ群1100aとして格納されている。本実施形態では、説明を簡単化するために、上述した2種類の選択パターンP1,P2を用いる場合について説明する。
選択パターンP1は、プログラムデータ格納部1100における奇数番地のデータを選択するためのパターンデータとなっている。図11における選択パターンP1は、0x01,0x03,0x05,0x07,0x09,0x0Bの6つのデータを所定データ1100bとして選択させるためのパターンデータとなっている。また、選択パターンP2は、プログラムデータ格納部1100における偶数番地のデータを選択するためのパターンデータとなっている。図11における選択パターンP2は、0x02,0x04,0x06,0x08,0x0A,0x0Cの6つのデータを所定データ1100bとして選択させるためのパターンデータとなっている。
主制御部201は、認証方式がチェックサムである場合、選択パターンP1に対応する所定データ1100bである、0x01,0x03,0x05,0x07,0x09,0x0Bの全てを加算した0x24を認証データ1003として生成する。また、主制御部201は、認証方式がチェックサムである場合、選択パターンP2に対応する所定データ1100bである、0x02,0x04,0x06,0x08,0x0A,0x0Cの全てを加算した0x2Aを認証データ1003として生成する。このように主制御部は、他の認証方式についても、選択パターンP1,P2の各々に対応した所定データ1100bに基づいて認証データ1003の演算を行う。
一方、認証者である周辺部は、それらの正規の認証データ1003に対応した期待値データを、上述した選択パターンP1,P2に関連付けてROM242,282等に予め記憶している。期待値データは複数種類の選択パターンP1,P2の各々に対応して生成されるので、データ群1100aの所定データ1100bに基づいて所定の認証方式で生成された認証データであれば、複数種類の期待値データの中に一致する期待値データが存在するはずである。よって、一致する期待値データが存在する場合は、認証データ1003は正規のものであり、周辺部は主制御部201を認証する。これに対し、一致する期待値データが存在しない場合は、認証データ1003は不正なものであり、周辺部は主制御部201を認証しない。そして、各期待値データは、選択パターンP1,P2に対応しているので、認証データと一致した期待値データから、該期待値データに対応した選択パターンP1,P2を特定することができる。また、周辺部は、選択パターンP1,P2と上述した送信回数とを関連付けてROM242,282等に予め記憶している。よって、周辺部は、特定した選択パターンP1,P2から1つの送信回数を特定することができる。
なお、本実施形態では、選択パターンP1,P2が、プログラムデータ格納部1100内の奇数番地と偶数番地を選択させるためのデータとした場合について説明した。これに代えて、選択パターンP1,P2を、それぞれの所定データを抽出するためのパターンテーブル、抽出プログラムデータ、等として構成することができる。さらに、データ抽出パターンは、プログラムデータ格納部1100内の全体や部分的なアドレス範囲からデータを抽出するためのデータとするなど種々異なる実施形態とすることができる。また、上述したプログラムデータ格納部1100内のデータ数は例示であり、データ数は固定値としてもよいし、ランダムに決定してもよい。
また、主制御部201から周辺部に対して、認証データ付制御信号1020を出力するタイミングは任意である。例えば、所定時間毎に認証データ付制御信号1020を出力してもよいし、常に認証データ付制御信号1020を出力してもよい。また、例えば制御信号内の制御コマンドデータ1001が特定の種類のコマンドである場合に、認証データ1003を付加するようにしてもよい。
なお、ここでは、2種類の選択パターンP1,P2を用いる場合について説明したが、選択パターンは3種類以上とすることもできる。具体的には、上述した選択パターンP1,P2の他に、図11に示す0x01〜0x06を3番目の選択パターンP3とし、0x07〜0x0Cを4番目の選択パターンP4とし、0x01〜0x0Cを5番目の選択パターンP5とする、などが一例として挙げられる。
(制御信号の送受信に関する処理)
以下に、主制御部201と周辺部との間で行う制御信号の通信例を説明する。まず、主制御201のCPU211(第1コンピュータ)による制御信号の送信手順の一例を、図13のフローチャートと図11,12を参照して説明する。
ぱちんこ遊技機100の電源がON(投入)されると、主制御部201は、ステップS1201において、制御コマンドを送信するか否かを判定する。なお、判定方法の一例としては、主制御部201から周辺部に送信する制御コマンドデータ1001が発生しているか否かに基づいて判定する。そして、主制御部201は、制御コマンドを送信しないと判定した場合(S1201:No)、ステップS1211の処理に進む。一方、主制御部201は、制御コマンドを送信すると判定した場合(S1201:Yes)、ステップS1202の処理に進む。
主制御部201は、ステップS1202において、RAM213に記憶している残ダミー数が0であるか否かを判定する。そして、主制御部201は、残ダミー数が0であると判定した場合(S1202:Yes)、ステップS1203において、複数種類の選択パターンP1〜P3の中から1つの選択パターンを決定し、ステップS1204において、該決定した選択パターンでデータ群1100aから所定データ1100bを選択し、該選択した所定データ1100bに基づいて所定の認証方式の認証データ1003を生成してRAM213に記憶し、その後ステップS1205の処理に進む。
主制御部201は、ステップS1205において、前記生成した認証データ1003と制御コマンドデータ1001に基づいて認証データ付制御信号1020を生成して周辺部に対して送信し、その後ステップS1206の処理に進む。そして、主制御部201は、ステップS1206において、前記決定した選択パターンに対応した送信回数を周辺部に送信するダミーデータ1004の送信回数と決定してRAM213に記憶し、ステップS1207において、決定した送信回数を残ダミー数としてRAM213に記憶し、その後ステップS1211の処理に進む。
また、主制御部201は、ステップS1202で、残ダミー数が0ではないと判定した場合(S1202でNo)、ステップS1208において、上述したダミーデータ1004を生成し、ステップS1209において、前記生成したダミーデータ1004と制御コマンドデータ1001に基づいてダミーデータ付制御信号1030を生成して周辺部に対して送信し、その後ステップS1210の処理に進む。そして、主制御部201は、ステップS1210において、RAM213の残ダミー数から1を差し引いた値を新たな残ダミー数としてRAM213に記憶し、その後ステップS1211の処理に進む。
なお、ダミーデータ1004は、制御信号を送信する毎に生成してもよいし、残ダミー数が決定されたタイミングで残ダミー数分だけ生成してもよい。また、予め適当な数のダミーデータ1004を生成しておき、必要に応じて使用するようにしてもよい。
主制御部201は、ステップS1211において、ぱちんこ遊技機100の電源がオフされたか否かを判定する。そして、主制御部201は、電源がオフされていないと判定した場合(S1211:No)、ステップS1201の処理に戻り、一連の処理を繰り返す。一方、主制御部201は、電源がオフされたと判定した場合(S1211:Yes)、本フローチャートによる処理を終了する。
続いて、周辺部のCPU241,281(第2コンピュータ)による各種制御信号の受信処理の手順を、図14のフローチャートを参照して説明する。
周辺部は、ステップS1301において、主制御部201から制御信号を受信したか否かを判定する。周辺部は、制御信号を受信していないと判定した場合(S1301:No)、この判定処理を繰り返すことで、制御信号の受信を待つ。一方、周辺部は、制御信号を受信したと判定した場合(S1301:Yes)、ステップS1302の処理に移行する。
周辺部は、ステップS1302において、RAM243,283の残ダミー数が0であるか否かを判定する。周辺部は、残ダミー数が0ではないと判定した場合(S1303:No)、ステップS1303において、RAM243,283の残ダミー数から1を差し引いた値を新たな残ダミー数としてRAM213に記憶し、その後ステップS1310の処理に進む。
なお、本実施形態では、受信した制御信号がダミーデータ1004を有している場合、制御信号が有する制御コマンドデータ1001に基づく処理を行う場合について説明するが、これに代えて、例えば、上述したダミー処理を実行するようにしてもよい。
また、周辺部は、ステップS1302で残ダミー数が0であると判定した場合(S1302:Yes)、ステップS1304において、受信した制御信号に認証データ1003が含まれているか否かを判定する。そして、周辺部は、認証データ1003が含まれていないと判定した場合(S1304:No)、ステップS1310の処理に進む。一方、周辺部は、認証データ1003が含まれていると判定した場合(S1304:Yes)、ステップS1305の処理に進む。
周辺部は、ステップS1305において、認証データ付制御信号1020に含まれた認証データ1003と予め記憶している複数の期待値データの各々とを照合し、認証データ1003と期待値データとが一致するか否かを判定する。そして、周辺部は、期待値データと一致すると判定した場合(1305:Yes)、ステップS1306において、主制御部201に対する認証を成立させ、その後ステップS1307の処理に進む。
周辺部は、ステップS1307において、認証データ1003と一致した期待値データに対応する選択パターンを特定し、ステップS1308において、該特定した選択パターンに対応する送信回数を特定してRAM243,283等に記憶し、その後ステップS1309の処理に進む。そして、周辺部は、ステップS1309において、特定した送信回数を残ダミー数としてRAM213の残ダミー数に設定して記憶し、その後ステップS1310の処理に進む。
周辺部は、ステップS1310において、受信した制御信号に含まれている制御コマンドデータ1001および付随データ1002に基づく処理を行い、その後ステップS1301の処理に進む。そして、周辺部は、ステップS1311において、ぱちんこ遊技機100の電源がオフされたか否かを判定する。そして、周辺部は、電源がオフされていないと判定した場合(S1311:No)、ステップS1301の処理に戻り、一連の処理を繰り返す。一方、周辺部は、電源がオフされたと判定した場合(S1311:Yes)、本フローチャートによる処理を終了する。
また、周辺部は、ステップS1305で期待値データと一致しないと判定した場合(S1305:No)、ステップS1312において、主制御部201に対する認証を不成立とし、ステップS1313において、制御コマンドデータ1001及び付随データ1002を破棄するとともに、例えばスピーカ262(図2参照)等から報知信号を出力して、本フローチャートによる処理を終了する。
(ダミーデータの送信方法の具体例)
次に、ぱちんこ遊技機100において、主制御基板310が認証データ1003のダミーデータ1004の送信回数を決定して送信処理を行う場合の一例を、図15及び図16の図面を参照して説明する。なお、選択パターンP1,P2と送信回数との関係は図12の関係とする。
まず、ぱちんこ遊技機100は、図15に示すように、主制御基板310が例えばランダム、予め定められた法則、等によって複数種類の選択パターンの中から選択パターンP1を決定すると、ダミーデータ1004の送信回数は1回となる(S2101)。そして、主制御基板310は、該決定した選択パターンP1が示すデータ群1100a中の複数の所定データ1100bに基づいて、所定の認証方式の認証データ1003を生成して暗号化する(S2102)。そして、主制御基板310は、該生成した認証データ1003を含む認証データ付制御信号1020を生成して周辺基板320に送信し(S2103)、残ダミー数に送信回数である1回を設定する(S2104)。
一方、周辺基板320は、認証データ付制御信号1020(認証データ)を受信すると(S2105)、その制御信号から認証データ1003を取得し、該認証データ1003と複数種類の期待値データとを照合する(S2106)。そして、周辺基板320は、認証データ1003と期待値データが一致すると、主制御基板310の認証を成立させ(S2107)、認証データ付制御信号1020の制御コマンドデータ1001に基づく処理を行う。そして、周辺基板320は、認証が成立すると、一致した期待値データに対応した選択パターンP1を特定し(S2108)、該選択パターンP1に対応した送信回数が1回と特定して残ダミー数に設定する(S2109)。
続いて、主制御基板310は、次の制御コマンドデータ1001が発生すると(S2110)、上述したダミーデータ1004を生成する(S2111)。主制御基板310は、該発生した制御コマンドデータ1001と付随データ1002とダミーデータ1004を含むダミーデータ付制御信号1030を生成して周辺基板320に送信し(S2112)、全てのダミーデータ1004の送信が終了しているので、残ダミー数に0回を設定する(S2113)。
一方、周辺基板320は、ダミーデータ付制御信号1030を受信すると(S2114)、残ダミー数には1回が設定されていることから、受信した制御信号に含まれているのはダミーデータ1004と判定し、ダミーデータ付制御信号1030の制御コマンドデータ1001及び付随データ1002に基づく処理を行う(S2115)。そして、周辺基板320は、全てのダミーデータ1004を受信したことから、残ダミー数に0回を設定し(S2116)、次の制御信号の受信を待つ。
次に、ぱちんこ遊技機100は、図16に示すように、主制御基板310が複数種類の選択パターンの中から選択パターンP2を決定すると、ダミーデータ1004の送信回数は2回となる(S2201)。そして、主制御基板310は、該決定した選択パターンP2が示すデータ群1100a中の複数の所定データ1100bに基づいて、所定の認証方式の認証データ1003を生成して暗号化する(S2202)。そして、主制御基板310は、該生成した認証データ1003を含む認証データ付制御信号1020を生成して周辺基板320に送信し(S2203)、残ダミー数に送信回数である2回を設定する(S2204)。
一方、周辺基板320は、認証データ付制御信号1020(認証データ)を受信すると(S2205)、その制御信号から認証データ1003を取得し、該認証データ1003と複数種類の期待値データとを照合する(S2206)。そして、周辺基板320は、認証データ1003と期待値データが一致すると、主制御基板310の認証を成立させ(S2207)、認証データ付制御信号1020の制御コマンドデータ1001に基づく処理を行う。そして、周辺基板320は、認証が成立すると、一致した期待値データに対応した選択パターンP2を特定し(S2208)、該選択パターンP2に対応した送信回数が2回と特定して残ダミー数に設定する(S2209)。
続いて、主制御基板310は、次の制御コマンドデータ1001が発生すると(S2210)、上述したダミーデータ1004を生成する(S2211)。主制御基板310は、該発生した制御コマンドデータ1001と付随データ1002とダミーデータ1004を含むダミーデータ付制御信号1030を生成して周辺基板320に送信し(S2212)、ダミーデータ1004の送信があと1回残っているので、残ダミー数に1回を設定する(S2213)。
一方、周辺基板320は、ダミーデータ付制御信号1030を受信すると(S2214)、残ダミー数には2回が設定されていることから、受信した制御信号に含まれているのはダミーデータ1004と判定し、ダミーデータ付制御信号1030の制御コマンドデータ1001及び付随データ1002に基づく処理を行う(S2215)。そして、周辺基板320は、ダミーデータ1004をあと1回受信することから、残ダミー数に1回を設定し(S2216)、次の制御信号の受信を待つ。
続いて、主制御基板310は、次の制御コマンドデータ1001が発生すると(S2217)、上述したダミーデータ1004を生成する(S2218)。主制御基板310は、該発生した制御コマンドデータ1001と付随データ1002とダミーデータ1004を含むダミーデータ付制御信号1030を生成して周辺基板320に送信し(S2219)、全てのダミーデータ1004の送信が終了しているので、残ダミー数に0回を設定する(S2220)。
一方、周辺基板320は、ダミーデータ付制御信号1030を受信すると(S2221)、残ダミー数には1回が設定されていることから、受信した制御信号に含まれているのはダミーデータ1004と判定し、ダミーデータ付制御信号1030の制御コマンドデータ1001及び付随データ1002に基づく処理を行う(S2222)。そして、周辺基板320は、全てのダミーデータ1004を受信したことから、残ダミー数に0回を設定し(S2223)、次の制御信号の受信を待つ。
なお、上述した実施形態では、認証データの暗号化に際して単一の暗号化方法を用いたが、認証データの認証方式と同様に複数種類の暗号化方法を切り替えて用いてもよい。これにより、不正解析者によって認証データが解析される可能性をより一層低減させることができる。
以上説明したぱちんこ遊技機100は、主制御部201のみが知っている選択パターンP1,P2の所定データを用いて認証データ1003を生成すると共に、複数種類の選択パターンP1,P2の各々に複数種類の送信回数を割り当てるようにしたことから、認証データ1003は選択パターンP1,P2に応じて変化するため、不正解析者は選択パターンP1,P2を解析できない限り、認証データ1003及びダミーデータ1004の少なくとも一方の送信回数を解析することはできない。また、主制御部201は認証データ1003の生成に用いる選択パターンP1,P2を切り替えることで、複数種類の送信回数を切り替えることができるため、不正解析者による不正な解析をより一層困難にすることができると共に、認証データ1003を生成する既存の処理に容易に組み込むことができる。従って、認証データ1003とダミーデータ1004の送信回数は主制御部201及び周辺部のみが知る値であることから、不正解析者は認証データ1003とダミーデータ1004を識別することができないため、認証データ1003が不正に窃取されるかの可能性を低減することができ、正規な主制御部20と周辺部との間に不正な制御部が介在されることを防止すると共に、主制御部201と周辺部との間の認証処理の強度を向上させることができる。
また、該ぱちんこ遊技機100によれば、認証データ1003及びダミーデータ1004を制御コマンドデータ1001に付加して送信することができるため、認証データ1003及びダミーデータ1004を単体で送信する場合と比較して、主制御部201と周辺部との間の通信負荷の増大を抑えることができる。従って、主制御部201から周辺部に送信する認証データ1003及びダミーデータ1004の送信回数を増大させることができ且つ送信回数の検出を困難にすることができるため、不正解析者によって解析されてしまう可能性を低減することができる。
さらに、上述したぱちんこ遊技機100において、今回送信する制御コマンドデータ1001を用いて認証データを生成するようにすれば、不正な制御部によって認証データ1003が再利用された場合であっても、認証データ1003と制御コマンドの整合性がとれず、不正を検知することができる。一般に、不正な制御部は、正規の主制御部201と異なる制御コマンドを送信することによって、周辺部に不正な動作を行わせようとすることから、このような不正な制御部の介在の防止に貢献することができる。
また、上述した実施形態では、1回の送信につき1つのダミーデータ1004を送信して、本発明の送信回数がダミーデータ1004を送信した回数とした場合について説明した。これに代えて、1回の送信で複数のダミーデータ1004を送信して、送信回数をデータ数とすることもできる。例えば、1回の送信信号の中に3つのダミーデータ1004が含まれている場合は、それらのダミーデータ1004の個数から送信回数を3回とカウントすることもできる。
(主制御基板および周辺基板の他の機能的構成)
上述した図3に示す主制御基板310と周辺基板320においては、主制御基板310の決定部312が選択パターンを決定する場合について説明した。これに代えて、決定部312が上述した送信回数を決定する実施形態とすることも可能であり、その一例を以下に説明する。なお、上述した主制御基板310と周辺基板320との基本構成は図3に示すものと同一であるため、異なる構成である主制御基板310の決定部312と認証データ生成部313とダミーデータ生成部314の構成を説明する。
主制御基板310の決定部312は、本発明の決定手段に相当し、認証データ及び認証データのダミーデータの少なくとも一方を周辺基板320に送信する送信回数を、予め定められた複数種類の送信回数の中から決定する。決定部312は、例えば乱数を発生させ、該乱数に基づいて複数種類の送信回数の中から1つの送信回数を決定する。そして、複数種類の選択パターンとは、主制御基板310と周辺基板320との間で予め定められた相異なる複数種類の選択パターンであり、複数種類の送信回数の各々と一対一に対応している。各選択パターンは、データ群の中から選択する所定データのアドレスデータ、所定データのアドレス範囲を示すテーブルデータ、等のデータを有して構成している。そして、本実施形態の決定部312が、認証データを送信するときに、該認証データを送信した後のダミーデータを送信する送信回数を決定する場合について説明する。
主制御基板310が決定するダミーデータの送信回数は主制御基板310のみが知る値であり、認証データの作成に用いた選択パターンが判明しない限り、不正解析者は送信回数を知ることはできない。これにより、主制御基板310と周辺基板320との間に不正な制御部が挿入されたことを検知することができ、不正な制御部による不正な処理を防止することができる。
認証データ生成部313は、本発明の認証データ生成手段に相当し、決定部312で決定した送信回数に対応した選択パターンが示す前記所定データに基づいて、予め定められた認証方式の認証データを生成する。認証方式としては、例えば、チェックサム、パリティチェック、ハミングコードチェック、CRC(巡回冗長検査)、等の公知の誤り検出方法を用いることが可能であり、複数種類の認証方式を任意のタイミングで切り替えてもよい。
ダミーデータ生成部314は、本発明のダミーデータ生成手段に相当し、認証データのダミーデータを生成する。ダミーデータは、正規の認証データが不正解析者によって区別される又は解析されるのを防止するために、周辺基板320に送信されるデータである。ダミーデータと認証データは、不正解析者からは区別がつかないように生成する必要があり、例えば、決定部312が決定した送信回数分のダミーデータを生成してもよいし、1つの認証データを生成して複数回送信するようにしてもよい。そして、ダミーデータ生成部314は、認証データとダミーデータとを識別できない形式で生成する。例えば、認証データとダミーデータとを同一のデータ構造で生成したり、認証データとは異なる認証方式のダミー認証データとして生成する。
このような構成に、上述した図13に示すフローチャートを適用する場合は、ステップS1203〜S1206の処理を、図17に示すように変更することで、実現させることができる。なお、その他の処理は図13と同一であるため、説明は省略する。
主制御部201は、図17に示すステップS1202において、RAM213に記憶している残ダミー数が0であるか否かを判定する。そして、主制御部201は、残ダミー数が0であると判定した場合(S1202:Yes)、ステップS1203‘において、予め定められた複数種類の送信回数の中からダミーデータ1004を周辺部に送信する1つの送信回数を決定し、その後ステップS1204’の処理に進む。そして、主制御部201は、ステップS1204‘において、前記決定した送信回数に対応した選択パターンを決定し、ステップS1205’において、前記決定した選択パターンでデータ群1100aから所定データ1100bを選択し、該選択した所定データ1100bに基づいて所定の認証方式の認証データ1003を生成してRAM213に記憶し、その後ステップS1206‘の処理に進む。
主制御部201は、ステップS1206’において、前記生成した認証データ1003と制御コマンドデータ1001に基づいて認証データ付制御信号1020を生成して周辺部に対して送信し、上述したステップS1207において、前記決定した送信回数を残ダミー数としてRAM213に記憶し、その後ステップS1211の処理に進む。
以上説明したぱちんこ遊技機100は、主制御部201のみが知っている送信回数に対応した選択パターンP1,P2の所定データを用いて認証データ1003を生成するようにしたことから、認証データ1003は選択パターンP1,P2に応じて変化するため、不正解析者は選択パターンP1,P2を解析できない限り、ダミーデータ1004の送信回数を解析することはできない。また、複数種類の選択パターンを用いていることから、主制御部201はそれらの選択パターンP1,P2の切り替えによって複数種類の送信回数を切り替えることができるため、不正解析者による不正な解析をより一層困難にすることができる。従って、認証データ1003とダミーデータ1004の送信回数は主制御部201及び周辺部のみが知る値であることから、不正解析者は認証データ1003とダミーデータ1004を識別することができないため、認証データ1003が不正に窃取されるかの可能性を低減することができ、正規な主制御部201と周辺部との間に不正な制御部が介在されることを防止すると共に、主制御部201と周辺部との間の認証処理の強度を向上させることができる。
(他の実施例)
次に、上述したぱちんこ遊技機100において、上述した制御コマンドを用いずにダミーデータ1004を送信する場合の制御方法の一例を、図18及び図19の図面を参照して以下に説明する。
まず、主制御部201が図18に示す送信側処理を実行した場合について説明する。なお、送信側処理は、ぱちんこ遊技機100において、何らかの制御コマンドが発生した際に主制御部201が実行することを前提とする。また、主制御部201から周辺部に送信するデータの各々は、通常、認証、ダミー、等の種別が識別可能なデータ構造とする。
主制御部201は、ステップS3101において、上述したように複数種類の送信回数の中から1つの送信回数を決定してRAM213等に記憶し、ステップS3102において、前記決定した送信回数に対応した選択パターンP1,P2を決定する。そして、主制御部201は、ステップS3103において、前記決定した選択パターンP1,P2で前記データ群1100aから所定データ1100bを選択し、該選択した所定データ1100bに基づいて所定の認証方式の認証データを生成し、ステップS3104において、該生成した認証データを周辺部に送信する。そして、主制御部201は、ステップS3105において、ダミーデータ1004を生成し、ステップS3106において、送信回数分のダミーデータ1004を周辺部に送信し、その後本フローチャートによる処理を終了する。
次に、周辺部が図19に示す受信側処理を実行した場合について説明する。そして、受信側処理は、上位モジュールからの終了要求に応じて処理を終了することを前提としている。
周辺部は、ステップS3201において、主制御部201からデータを受信したか否かを判定する。周辺部は、データを受信していないと判定した場合(S3201:No)、この判定処理を繰り返すことでデータの受信を待つ。一方、周辺部はデータを受信したと判定した場合(S3201:Yes)、ステップS3202の処理に進む。
周辺部は、ステップS3202において、受信したデータが認証データであるか否かを判定する。そして、周辺部は認証データであると判定した場合(S3202でYes)、ステップS3203において、受信した認証データと予め記憶している複数の期待値データの各々とを照合し、認証データと期待値データとが一致するか否かを判定する。そして、周辺部は、期待値データと一致すると判定した場合(S3203:Yes)、ステップS3204において、主制御部201に対する認証を成立させ、その後ステップS3205の処理に進む。
周辺部は、ステップS3205において、認証データと一致した期待値データに対応する選択パターンを特定し、ステップS3206において、該特定した選択パターンに対応する送信回数を特定してRAM243,283等に記憶し、その後ステップS3201の処理に戻り、一連の処理を繰り返す。
また、周辺部は、ステップS3203で期待値データと一致しないと判定した場合(S3203:No)、ステップS3207において、主制御部201に対する認証を不成立とし、ステップS3208において、受信した認証データを破棄すると共に、不正な認証データを報知するための報知情報を生成して、例えばスピーカ262(図2参照)等から出力し、その後ステップS3201の処理に戻り、一連の処理を繰り返す。
また、周辺部は、ステップS3202で認証データではないと判定した場合(S3202:No)、ステップS3209において、受信したデータがダミーデータであるか否かを判定する。そして、周辺部は、ダミーデータであると判定した場合(S3209:Yes)、ステップS3210において、上述したダミー処理を実行し、該処理が終了した後にステップS3201の処理に戻り、一連の処理を繰り返す。一方、周辺部は、ダミーデータではないと判定した場合(S3209:No)、その後ステップS3201の処理に戻り、一連の処理を繰り返す。
このように、ぱちんこ遊技機100を構成しても、主制御部201のみが知っている送信回数に対応した選択パターンの所定データを用いて認証データを生成することができることから、認証データは選択パターンに応じて変化するため、不正解析者は選択パターンを解析できない限り、ダミーデータの送信回数を解析することはできない。また、複数種類の選択パターンを用いていることから、主制御部201はそれらの選択パターンの切り替えによって複数種類の送信回数を切り替えることができるため、不正解析者による不正な解析をより一層困難にすることができる。従って、認証データとダミーデータの送信回数は主制御部201及び周辺部のみが知る値であることから、不正解析者は認証データとダミーデータを識別することができないため、認証データが不正に窃取されるかの可能性を低減することができ、正規な主制御部201と周辺部との間に不正な制御部が介在されることを防止すると共に、主制御部201と周辺部との間の認証処理の強度を向上させることができる。
なお、本実施形態で説明した主制御部及び周辺部の制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、CD−ROM、MO、DVD、等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、インターネット等のネットワークを介して配布することが可能な電送媒体であってもよい。