以下に添付図面を参照して、本発明にかかる電子機器の機能を有したぱちんこ遊技機と、このぱちんこ遊技機に搭載されている複数の基板間(主制御基板および周辺基板)の制御信号に含まれる制御コマンドを認証する認証方法および認証プログラムに好適な実施の形態を詳細に説明する。
[実施例1]
(ぱちんこ遊技機の基本構成)
本発明のぱちんこ遊技機は、図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に遊技球が入賞すると、ぱちんこ遊技機は普通入賞時の賞球数(例えば10個)の払い出しを行う。遊技領域103の最下部には、どの入賞口にも入賞しなかった遊技球を回収する回収口108が設けられている。
上述した図柄表示部104は、特定の入賞口に遊技球が入賞したとき(始動入賞時)に、複数の図柄の表示の変動を開始し、所定時間後に図柄の表示の変動を停止する。この停止時に特定図柄(例えば「777」など)に揃ったときに、ぱちんこ遊技機は大当たり状態となる。そして、ぱちんこ遊技機は、大当たり状態のとき、遊技盤101の下方に位置する大入賞口109を一定の期間開放させ、この期間開放を所定ラウンド(例えば15ラウンドなど)繰り返し、大入賞口109に入賞した遊技球に対応した賞球数を払い出す。
ぱちんこ遊技機は、図2に示す制御部200を備えている。制御部200は、主制御部201と、演出制御部202と、賞球制御部203と、を有している。そして、主制御部201は本発明の主制御基板に相当し、演出制御部202と賞球制御部203とはそれぞれ本発明の周辺基板に相当している。そして、主制御部201は、ぱちんこ遊技機の遊技にかかる基本動作を制御する。演出制御部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は、ぱちんこ遊技機に対応した演出処理を実行する。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は、それぞれ異なるプリント基板(主制御基板、演出基板、賞球基板)に設けられる。なお、基板の構成は、これに限らず、例えば、賞球制御部203を、主制御部201又は演出制御部202と同一のプリント基板上に設けるなどの種々異なる構成とすることができる。
(主制御基板および周辺基板の機能的構成)
まず、図3を参照して、主制御部201としての機能を有する主制御基板310の機能的構成について説明する。主制御基板310は、周辺基板320を動作させるための制御コマンドを送信する機能部であり、データ記憶部311、決定部312、認証値生成部313、送信部314によって構成される。そして、主制御基板310は周辺基板320と通信可能なように電気的に接続されている。
データ記憶部311は、本発明のデータ群記憶手段に相当し、所定のデータ群を記憶している。所定のデータ群とは、例えば、主制御基板310で用いられるプログラムデータ等である。データ記憶部311としては、例えば、主制御部201のROM212(図2参照)の一部を用いることができる。また、データ群は、プログラムデータの他に、予め定められた複数の認証用データなど種々異なる実施形態とすることができる。
決定部312は、本発明の選択パターン決定手段に相当し、主制御部201の認証に用いる所定データを前記データ群の中から選択する選択パターンを、複数種類の選択パターンの中から選択的に決定する。複数種類の選択パターンとは、主制御基板310と周辺基板320との間で予め定められた相異なる複数種類の選択パターンであり、複数種類の認証方式の各々に一対一に対応している。そして、各選択パターンは、データ群の中から選択する所定データのアドレスデータ、所定データのアドレス範囲を示すテーブルデータ、等のデータを有して構成している。決定部312は、主制御部201の次回の認証に用いる認証方式を切り替えるときに、当該次回の認証方式に対応した選択パターンを複数種類の選択パターンの中から選択する。そして、切り替えタイミングは、例えば、予め定められた制御コマンドの送信時、予め定められた日時、などから任意に定めることができる。
主制御基板310が選択した選択パターンは主制御基板310のみが知る値なので、不正解析者は、認証データの生成に用いた所定データ及び選択パターンの切り替えタイミングを知ることができない。これにより、主制御基板310と周辺基板320との間に不正な制御部が挿入されたことを検知することができ、不正な制御部による不正な処理を防止することができる。
認証データ生成部313は、本発明の認証データ生成手段に相当し、決定部312で決定した選択パターンが示す前記所定データに基づいて、複数種類の認証方式の中から選択された認証方式に対応した認証データを生成する。認証方式の選択については、例えば、前回の認証データの生成の際に、決定部312が決定した選択パターンに対して予め定められた認証方式を選択する。即ち、複数種類の選択パターンと複数種類の認証方式とはぱちんこ遊技機毎に予め対応付けられており、正規の主制御部201及び周辺部は、複数種類の選択パターンをそれに対応する認証方式に関連付けて予めROM212等に記憶している。また、複数種類の認証方式としては、例えば、チェックサム、パリティチェック、ハミングコードチェック、CRC(巡回冗長検査)、等の公知の誤り検出方法を用いることができる。
送信部314は、本発明の送信手段に相当し、認証データ生成部313が生成した認証データを周辺基板320に送信する。送信部314は、例えば、主制御基板310から周辺基板320に送信される制御信号に認証データを付加することにより、認証データを周辺基板320に送信する。
続いて、上述した演出制御部202や賞球制御部203などの周辺部としての機能を有する周辺基板320の機能的構成について説明する。図3に示すように、周辺基板320は、受信部321、演算値記憶部322、認証部323を有して構成される。
受信部321は、本発明の受信手段に相当し、主制御基板310によって送信された認証データを受信する。受信部321は、例えば、認証データが付加された制御信号を受信することによって、認証データを主制御基板310から受信する。
演算値記憶部322は、本発明の期待値データ記憶手段に相当し、前記複数種類の選択パターンの各々に対応して前記データ群から選択した前記所定データに基づいて、主制御基板310によって前記複数種類の認証方式の各々に対応して生成される複数の期待値データを予め記憶している。即ち、前記複数種類の認証方式の各々に対応した期待値データを、ぱちんこメーカー等がぱちんこ遊技機に対して予め演算し、該期待値データを演算値記憶部322に予め記憶しておく。例えば、2種類の認証方式を用いる場合、選択パターンは2種類となり、予め演算する期待値データの数は4つとなる。
認証部323は、本発明の認証手段に相当し、主制御基板310から受信した認証データと前記複数の期待値データとが一致するか否かに基づいて主制御基板310の認証を行う。より詳細には、複数の期待値データの中に認証データと一致するものがあるか否かを判定する。認証部323は、認証データと期待値データが一致する場合に主制御基板310の認証を成立させ、また、一致しない場合に不成立とする。そして、認証部323は、主制御基板310に対する認証が成立した場合、前記認証データの生成に用いられた前記選択パターンを特定し、該選択パターンに対して定められた認証方式を次回の前記認証に用いる前記所定の認証方式とする。
本実施形態では、主制御基板310のCPU211が請求項中の第1コンピュータ、周辺基板320のCPU241,281の各々が請求項中の第2コンピュータとして機能させる場合について説明する。そして、主制御基板310のROM212は、前記第1コンピュータを選択パターン決定手段、認証データ生成手段、送信手段として機能させるための主制御側認証プログラムを記憶している。そして、周辺基板320のROM242、282の各々は、前記第2コンピュータを受信手段、期待値データ記憶手段、認証手段として機能させるための周辺側認証プログラムを記憶している。即ち、主制御側認証プログラムと周辺側認証プログラムによって本発明の認証プログラムを構成している。
(ぱちんこ遊技機の基本動作)
上記構成によるぱちんこ遊技機の基本動作の一例を、図1,2を参照して説明する。主制御部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個の賞球数で払い出しを行う。ぱちんこ遊技機は、大当たり終了後、この大当たり状態を解除し、通常の遊技状態に復帰する。
(各制御部による処理の詳細)
次に、各制御部が行う各種処理の詳細について説明する。まず、主制御部201による演出制御部202の制御処理について説明する。なお、図4〜図9においては、演出制御部202の制御処理の手順を明確にするため、補正データ、認証データおよび付随データについては考慮しないものとする。即ち、図4〜図9の説明において、「コマンドを送信する」とは、「当該コマンドを示すデータ(制御コマンドデータ)を含む制御信号を送信する」との意味であり、例えば補正データや認証データや付随データの有無は考慮しないものとする。
主制御部201は、図4に示すステップS401において、ぱちんこ遊技機の電源がオンされたか否かを判定する。主制御部201は、電源がオンされていないと判定した場合(S401:No)、この判定処理を繰り返すことで、ぱちんこ遊技機の電源がオンされるまで待機する。一方、主制御部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において、ぱちんこ遊技機の電源がオフされたか否かを判定する。主制御部201は、電源がオフされていないと判定した場合(S422:No)、図4に示すステップS403の処理に戻り、一連の処理を繰り返す。一方、主制御部201は、電源がオフされたと判定した場合(S422:Yes)、ステップS423において、終了処理コマンドを演出制御部202に送信し、本フローチャートによる処理を終了する。
次に、ぱちんこ遊技機における大当たり関連コマンド(大当たりリーチコマンド、大当たり開始コマンド、大当たりコマンド、大当たり終了コマンド)の主制御部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と周辺部との間に不正な制御基板が接続された場合(図20参照)などのように、制御コマンドの出力元が正規の主制御部201ではない場合、周辺部は不正な制御基板から出力された不正な制御コマンドによって不正な動作を行ってしまう。
このような不正を防止するため、本実施の形態に係るぱちんこ遊技機では、主制御部201と周辺部との間で認証処理を行う。より詳細には、周辺部を認証者、主制御部201を被認証者とした認証処理を行い、主制御部201から送信される制御信号の正当性を認証する。この認証処理に用いる認証値(認証データ)は、主制御部201に記憶されているデータ群の中から選択した所定データに基づいて生成されている。この認証処理によって、主制御部201が不正な制御基板に交換されたり、主制御部201と周辺部との間に不正な制御基板が取り付けられるなどの不正を検知して、ぱちんこ遊技機への不正を防止することができる。
本実施の形態では、認証データを制御コマンドデータに付加して送信する。認証データを制御コマンドデータに付加することによって、認証データ単体で送信する場合と比較して、主制御部201と周辺部との間の通信付加の増大を抑えている。また、認証データを制御コマンドデータに付加することによって、認証データを単体で送信する場合と比較して、通信データ中から認証データが抽出され、解析されてしまう可能性を低減させている。以下に認証データと制御コマンドデータを含む制御信号のフォーマットについて説明する。
(制御信号のデータフォーマット)
次に、主制御部201が出力する通常の制御信号及び認証データ付制御信号の一例を説明する。
図10において、通常の制御信号1010は、制御コマンドデータ1001と付随データ1002とを有している。制御コマンドデータ1001は、例えばリーチコマンドや大当たり開始コマンド、ラウンド別コマンドなどの各コマンド固有のデータである。また、付随データ1002は、制御コマンドデータ1001に付随するデータであり、例えば、入賞した遊技球の数などの制御コマンドデータ1001に基づく処理に必要なデータである。
また、認証データ付制御信号1020は、制御コマンドデータ1001及び付随データ1002に加え、認証データ1003を有している。該認証データ1003は、制御コマンドデータ1001及び付随データ1002が正規の主制御部201から出力されたものであることを、周辺部が認証するためのデータである。認証データ1003は、具体的できには以下のように生成された値である。
(認証データの生成方法)
図11において、認証データは、主制御部201のROM212などのプログラムデータ格納部1100に格納されたデータ群1100aに基づいて生成する。プログラムデータ格納部1100は、ROM212内の記憶領域に対して予め定められた所定の格納領域となっている。データ群1100aは、プログラムデータ格納部1100に格納された複数のデータの集まり、即ち、プログラムデータとなっている。本実施形態のデータ群1100aは、ROM212に記憶されたプログラムデータ(命令データや固定データなど)を任意に用いている。そして、主制御部201のROM212に記憶されたプログラムデータをデータ群1100aとして用いることによって、主制御部201のROM212の不正な取り替えなどがあった場合、正規の選択データを生成することができないため、プログラムコードの不正な書き換えや不正を検知又は防止することができる。
主制御部201は、複数種類の認証方式を用いることが可能である場合、各認証方式に対応した選択パターンをROM212等に予め記憶している。主制御部201は、起動時又は前回の認証時に定められた選択パターンで、データ群1100aの中から複数の所定データ1100bを抽出し、該複数の所定データ1100bに基づいて今回認証方式に対応した認証データを生成する。複数種類の認証方式としては、例えば、チェックサム、パリティチェック、ハミングコードチェック、CRC(巡回冗長検査)、等の公知の誤り検出方法を認証方式として選択的に用いることができる。そして、認証データを暗号化するか否かは任意であるが、暗号化することによって不正な制御基板による選択データの再利用、解析などの防止が期待できるため、不正防止の観点から暗号化することが望ましい。
例えば、図11に示すプログラムデータ格納部1100には、12個のデータ(0x01〜0x09,0x0A〜0x0C)がデータ群1100aとして格納されている。本実施形態では、説明を簡単化するために、2種類の選択パターンP1,P2を用いる場合について説明する。そして、本実施形態では、選択パターンP1が認証方式N1、選択パターンBが認証方式N2をそれぞれ示している。
選択パターン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等に予め記憶している。期待値データは複数種類の認証方式の各々に対応して生成されているので、データ群1100aの所定データ1100bに基づいて今回の認証方式で生成された認証データであれば、複数の期待値データの中に一致するデータが存在するはずである。よって、一致する期待値データが存在する場合は、認証データ1003は正規のものであり、周辺部は主制御部201を認証する。これに対し、一致する期待値データが存在しない場合は、認証データ1003は不正なものであり、周辺部は制御部201を認証しない。そして、各期待値データは、選択パターンP1,P2に対応しているので、認証データと一致した期待値データから選択パターンP1,P2を特定することができる。
また、周辺部は、選択パターンP1,P2と複数種類の認証方式を示す識別データとを関連付けてROM242,282等に予め記憶している。即ち、選択パターンP1,P2に複数種類の認証方式の各々を示す識別データを関連付けるようにしたことから、複数種類の認証方式を順番等に関係なく自由に選択して切り替えることができるため、不正解析者による不正な解析をより一層困難にさせている。
なお、本実施形態では、選択パターンP1,P2が、プログラムデータ格納部1100内の奇数番地と偶数番地を選択させるためのデータとした場合について説明した。これに代えて、選択パターンP1,P2を、それぞれの所定データを抽出するためのパターンテーブル、抽出プログラムデータ、等として構成することができる。さらに、データ抽出パターンは、プログラムデータ格納部1100内の全体や部分的なアドレス範囲からデータを抽出するためのデータとするなど種々異なる実施形態とすることができる。また、上述したプログラムデータ格納部1100内のデータ数は例示であり、データ数は固定値としてもよいし、ランダムに決定してもよい。
上述した主制御部201は、複数種類の認証方式の切り替えに、上述した選択パターンP1,P2を用いる。そして、周辺部は、認証が成立したときに、認証データの生成に用いた選択パターンP1,P2を特定し、該選択パターンP1,P2に基づいて複数種類の選択方式を切り替える。よって、不正解析者は選択パターンP1,P2と認証方式を知ることができず、該認証方式の切り替えタイミングも知ることができない。これにより、不正解者によって認証データが不正に生成されることを防止することができる。
また、主制御部201から周辺部に対して、認証データ付制御信号1020を出力するタイミングは任意である。例えば、所定時間毎に認証データ付制御信号1020を出力してもよいし、常に認証データ付制御信号1020を出力してもよい。また、例えば制御信号内の制御コマンドデータ1001が特定の種類のコマンドである場合に、認証データ1003を付加するようにしてもよい。
さらに、制御コマンドデータ1001、付随データ1002、認証データ1003を並べる順番は、図10に示す順番に限らず、例えば認証データ1003を制御信号の先頭にしたり、制御コマンドデータ1001と付随データ1002との間に認証データ1003を挿入するなどの種々異なる実施形態とすることができる。
なお、本実施形態では、2種類の選択パターンP1,P2を用いる場合について説明するが、選択パターンは3種類以上とすることもできる。具体的には、上述した選択パターンP1,P2の他に、図11に示す0x01〜0x06を3番目の選択パターンとし、0x07〜0x0Cを4番目の選択パターンとし、0x01〜0x0Cを5番目の選択パターンとする、などが一例として挙げられる。
(制御信号の送受信処理)
以下に、主制御部201と周辺部との間で行う制御信号の通信例を説明する。まず、主制御部201のCPU211(第1コンピュータ)による各種制御信号の送信処理の手順を、図12のフローチャートを参照して説明する。なお、図12に示す送信処理は、制御信号の送信時に実行されることを前提としている。
主制御部201は、ステップS1201において、認証データの送信タイミングであるか否かを判定する。送信タイミングの判定方法は、予め定められた制御コマンド(例えば、大当たりコマンドなど)であるか否か、予め定められた時間、シーケンスであるか否か、等が一例として挙げられる。主制御部201は、認証データの送信タイミングではないと判定した場合(S1201:No)、ステップS1202において、制御コマンドに対応した通常の制御信号1010を生成して周辺部に対して送信し、本フローチャートによる処理を終了する。
一方、主制御部201は、認証データの送信タイミングであると判定した場合(S1201:Yes)、ステップS1203において、複数の認証方式の中から次回の認証に用いる次回認証方式を選択(決定)する。詳細には、次回の認証データ付制御信号1020を送信する際に、認証データの生成に用いる認証方式を切り替えるタイミングであるか否かを判定し、切り替えタイミングであれば、次回の認証方式を切り替えて選択する。また、切り替えタイミングでなければ、今回用いる認証方式を選択する。
主制御部201は、ステップS1204において、次回認証方式として選択した認証方式に対応した選択パターンを、複数種類の選択パターンの中から決定する。主制御部201は、ステップS1205において、該決定した選択パターンで前記データ群1100aから所定データ1100bを選択し、該選択した所定データ1100bに基づいて今回の認証方式の認証データをRAM213に生成する。そして、主制御部201は、ステップS1206において、前記生成した認証データと制御コマンドに基づいて認証データ付制御信号1020を生成して周辺部に対して送信し、本フローチャートによる処理を終了する。
続いて、周辺部のCPU241,281(第2コンピュータ)による各種制御信号の受信処理の手順を、図13のフローチャートを参照して説明する。
周辺部は、ステップS1301において、主制御部201から制御信号を受信したか否かを判定する。周辺部は、制御信号を受信していないと判定した場合(S1301:No)、この判定処理を繰り返すことで、制御信号の受信を待つ。一方、周辺部は、制御信号を受信したと判定した場合(S1301:Yes)、ステップS1302の処理に移行する。
周辺部は、ステップS1302において、受信した制御信号に認証データが含まれているか否かを判定する。周辺部は、受信した制御信号に認証データが含まれていないと判定した場合(S1302:No)、通常の制御信号1010を受信したものと判断し、ステップS1309の処理に移行する。一方、周辺部は、認証データが含まれていると判定した場合(S1302:Yes)、認証データ付制御信号1020を受信したものと判断し、ステップS1303の処理に移行する。
周辺部は、ステップS1303において、認証データ付制御信号1020に含まれた認証データ1003と所定の認証方式に対応して予め定められた複数の期待値データの各々とを照合し、認証データ1003と期待値データとが一致するか否かを判定する。周辺部は、期待値データと一致すると判定した場合(1303:Yes)、ステップS1304において、主制御部201に対する認証を成立させ、ステップS1305の処理に移行する。周辺部は、ステップS1305において、認証データ1003に一致した期待値データに関連付けられた識別データに基づいて選択パターンを特定し、該選択パターンに対応した認証方式を次回認証方式として特定し、ステップS1306の処理に移行する。周辺部は、ステップS1306において、前記特定した次回認証方式に対応した複数の期待値データをRAM213の所定領域に設定し、ステップS1307において、そのまま制御コマンドデータ1001及び付随データ1002に基づく処理を行って、本フローチャートによる処理を終了する。
一方、周辺部は、認証データ1003と期待値データとが一致しないと判定した場合(1303:No)、ステップS1308において、主制御部201に対する認証を不成立とし、ステップS1309において、制御コマンドデータ1001及び付随データ1002を破棄するとともに、例えばスピーカ262(図2参照)等から報知信号を出力して、本フローチャートによる処理を終了する。
(認証方式の切り替え処理の具体例)
次に、ぱちんこ遊技機において予め定められた2つの認証方式A,Bの切り替え処理の一例を、図14に図面を参照して説明する。なお、2つの認証方式A,Bの各々には、図11に示す2つの選択パターンP1,P2が一対一に対応付けられている。そして、デフォルトの認証方式を認証方式Aとしている。
まず、ぱちんこ遊技機の起動に応じて、主制御基板310及び周辺基板320が起動されると、主制御基板310はデフォルトの認証方式Aを決定する(S1401)。一方、周辺基板320はデフォルトの認証方式Aを決定し且つ該認証方式Aに対応した期待値データをRAM243,283に設定する。
主制御基板310は、周辺基板320に送信する制御コマンドデータ1001が発生すると、予め定められた切り替え条件、等に基づいて次回の認証方式Bを選択してRAM213に記憶する(S1403)。主制御基板310は、次回の認証方式Bに対応した選択パターンP2を決定し、該選択パターンP2が示すデータ群1100a中の複数の所定データ1100bに基づいて、今回の認証方式Aの認証データ1003を生成して暗号化する(S1404)。そして、主制御基板310は、該生成した認証データ1003を含む認証データ付制御信号1020を生成して周辺基板320に送信し(S1405)、認証方式Aから認証方式Bに切り替わって待機状態となる(S1406)。これにより、選択パターンP2及び認証方式Aに対応した認証データ1003を周辺基板320に送信することができる。
一方、周辺基板320は、認証データ付制御信号1020(認証データ)を受信すると(S1407)、その制御信号から認証データ1003を抽出し、該認証データ1003と今回の認証方式である認証方式Aに対応した複数の期待値データとを照合する。周辺基板320は、認証データ1003と期待値データが一致すると、主制御基板310の認証を成立させ(S1408)、認証データ付制御信号1020の制御コマンドデータ1001に基づく処理を行う。また、周辺基板320は、その認証データ1003から主制御基板310で用いられた選択パターンP2を特定し(S1409)、該選択パターンP2に対応した認証方式Bの期待値データをRAM243,283に設定する(S1410)。
続いて、主制御基板310は、切り替えられた認証方式Bを決定し(S1411)、周辺基板320に新たに送信する制御コマンドデータ1001が発生し、認証方式を継続させる場合、次回の認証方式Bを選択してRAM213に記憶する(S1412)。なお、認証方式を継続させる場合は、ステップS1412の処理を省略してもよい。そして、主制御基板310は、次回の認証方式Bに対応した選択パターンP2を決定し、該選択パターンP2が示すデータ群1100a中の複数の所定データ1100bに基づいて、今回の認証方式Bの認証データ1003を生成して暗号化する(S1413)。そして、主制御基板310は、該生成した認証データ1003を含む認証データ付制御信号1020を生成して周辺基板320に送信し(S1414)、認証方式Bを切り替えずに待機状態となる(S1415)。これにより、選択パターンP2及び認証方式Bに対応した認証データ1003を周辺基板320に送信することができる。
一方、周辺基板320は、認証データ付制御信号1020(認証データ)を受信すると(S1416)、その制御信号から認証データ1003を抽出し、該認証データ1003と今回の認証方式である認証方式Bの期待値データとを照合する。周辺基板320は、認証データ1003と期待値データが一致すると、主制御基板310の認証を成立させ(S1417)、認証データ付制御信号1020の制御コマンドデータ1001に基づく処理を行う。また、周辺基板320は、その認証データ1003から主制御基板310で用いられた選択パターンP2を特定し(S1418)、該選択パターンP2に対応した認証方式Bの期待値データをRAM243,283に保持する(S1419)。
以降同様に、主制御基板310は、周辺基板320に新たに送信する制御コマンドデータ1001が発生すると、次回の認証方式Aを選択し、該認証方式Aに対応した選択パターンP1を決定する。主制御基板310は、選択パターンP1が示すデータ群1100a中の複数の所定データ1100bに基づいて、今回の認証方式Bの認証データ1003を生成して暗号化して周辺基板320に送信する。これにより、選択パターンP1及び認証方式Bに対応した認証データ1003を周辺基板320に送信することができる。
なお、上述した実施形態では、認証データの暗号化に際して単一の暗号化方法を用いたが、認証データの認証方式と同様に複数種類の暗号化方法を切り替えて用いてもよい。これにより、不正解析者によって認証データが解析される可能性をより一層低減させることができる。
以上説明したように、本発明にかかるぱちんこ遊技機は、主制御部201のみが知っている次回認証方式に対応した選択パターンP1,P2の所定データ1100bを用いて認証データ1003を生成するようにしたことから、認証データ1003も選択パターンP1,P2に応じて変化するため、不正解析者は選択パターンP1,P2を解析できない限り、認証データ1003を解析することはできない。また、主制御部201は、該選択パターンP1,P2を次回認証方式に応じて任意に切り替えて選択することができるため、不正解析者はその切り替えタイミングを知ることができず、認証データ1003に対する不正な解析をより一層困難にすることができる。従って、不正解析者は主制御部201が決定した選択パターンP1,P2を解析できない限り、正規な制御部の改ざん及び正規な主制御部と周辺部との間に不正な制御部が介在されることを防止できる。また、周辺部は複数種類の認証方式に対応した期待値データを記憶しておくだけで、認証データ1003の正当性の判断と選択パターンの解析を行うことができることから、ソフトウェアのデバッグ、評価、等の開発の検証が容易であるため、開発期間の短縮、製品の信頼性の向上、等に貢献することができる。また、1種類の制御コマンド体系でも、セキュリティの向上を図ることが可能であり、ぱちんこ遊技機のコストダウンに貢献することができる。
また、該ぱちんこ遊技機によれば、選択パターンP1,P2を複数種類の認証方式A〜Cの各々を示す識別データとするようにしたことから、複数種類の認証方式A〜Cを順番等に関係なく自由に選択して切り替えることができるため、不正解析者による不正な解析をより一層困難にさせることができる。
なお、上述した実施形態では、2種類の認証方式を有するぱちんこ遊技機について説明したが、本発明はこれに限定するものではなく、3種類以上の認証方式を有するぱちんこ遊技機とすることもできる。その場合は、主制御部201は3種類以上の選択パターンを選択的に用いて認証データ1003を生成し、また、周辺部はそれらの選択パターンに対応した期待値データを予め記憶しておき、該期待値データを用いて主制御部201の認証を行う。すると、認証方式の種類を増やせるので、1種類の制御コマンド体系でも、不正解析者による不正な解析をより一層困難にさせることができる。
また、本実施形態で説明した主制御部及び周辺部の制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、CD−ROM、MO、DVD、等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、インターネット等のネットワークを介して配布することが可能な電送媒体であってもよい。
[実施例2]
上述したぱちんこ遊技機の他の実施形態を以下に説明する。なお、上記実施例1のところで説明したものと同一あるいは相当する部分には同一符号を付してその詳細な説明は省略する。
実施例2に係るぱちんこ遊技機は、上述した実施例1と同一の基本構成となっており、図2に示す制御部200を有している。制御部200は、主制御部201と、演出制御部202と、賞球制御部203と、を有している。そして、ぱちんこ遊技機は、主制御部201としての機能を有する主制御基板310と、上述した演出制御部202や賞球制御部203などの周辺部としての機能を有する周辺基板320と、を有している。そして、主制御部201は図10に示すデータフォーマットの通常の制御信号1010及び認証データ付制御信号1020を、演出制御部202、賞球制御部203、等に出力する。
(認証データの第2生成方法)
次に、上述した図11に示す選択パターンP1,P2を用いて、認証データを第2生成方法で生成する一例を説明する。
認証データは、図11に示す主制御部201のプログラムデータ格納部1100に格納されたデータ群1100aの中の選択パターンP1,P2で示す所定データ1100bに基づいて生成する。そして、図15(a)に示すように、選択パターンP1は“継続”を示し、今回の認証方式を次回の認証方式でも継続することを意味している。選択パターンP2は“切替”を示し、今回の認証方式を次回の認証方式で切り替えることを意味している。そして、選択パターンP1,P2は、今回の認証方式を継続するか否かを示す切替判定データが関連付けられており、該切替判定データは主制御部201及び周辺部に予め記憶している。
ぱちんこ遊技機は、主制御基板310と周辺基板320との間で、図15(b)に示す認証方式A〜Cの切り替え順番を予め定めている。具体的には、認証方式A〜Cの切り替え順番を示す切替順番データNPを、主制御基板310と周辺基板320との各々に予め記憶している。認証方式A〜Cの各々は、例えば、チェックサム、パリティチェック、ハミングコードチェックとしている。なお、2種類の認証方式を用いる場合は、切替順番データNPは構成から削除される。
主制御基板310は、認証方式A〜Cの中から主制御基板310の次回の認証で用いる次回認証方式を、今回認証方式を継続させるか否かの判定結果に基づいて決定する。例えば、今回認証方式と次回認証方式を同一の認証方式とする場合は、“継続”を示す選択パターンP1を選択する。また、今回認証方式と次回認証方式を異なる認証方式とする場合は、“切替”を示す選択パターンP2を選択する。
被認証者である主制御基板310は、選択した選択パターンP1,P2に基づいて、プログラムデータ格納部1100における奇数番地又は偶数番地の所定データ1100bを選択し、これらのデータに基づいて、上述したように今回の認証方式に対応した認証データを生成する。また、認証者である周辺基板320は、主制御基板310が選択パターンP1,P2とプログラムデータ格納部1100のデータに基づいて各認証方式A〜Cで生成される値を期待値データを、選択パターンP1,P2に関連付けてROM242,282等に予め記憶している。
よって、期待値データは複数種類の認証方式の各々に対応して生成されているので、データ群1100aの所定データに基づいて所定の認証方式で生成された認証データであれば、複数の期待値データの中に一致するデータが存在するはずである。よって、一致する期待値データが存在する場合は、認証データは正規のものであり、周辺部は主制御部201を認証する。これに対し、一致する期待値データが存在しない場合は、認証データは不正なものであり、周辺部は制御部201を認証しない。そして、各期待値データは、選択パターンP1,P2に対応しているので、認証データと一致した期待値データから選択パターンP1,P2を特定することができる。
つまり、主制御部201は、次回の認証でも今回認証方式を継続する場合は選択パターンP1、また、次回の認証で認証方式を切り替える場合は選択パターンP2を用いて認証データを生成する。そして、周辺部は、受信した認証データによる認証が成立したときに、認証データの生成に用いた選択パターンP1,P2を特定し、選択パターンP2の場合に切替順番データNPを用いて認証方式を切り替える。従って、不正解析者は、選択パターンP1,P2を解析できても、ぱちんこ遊技機で用いている認証方式の種類(数)とその切り替え順番を解析しない限り、不正を行うことができないため、不正解者によって認証データが不正に生成されることを防止することができる。
また、主制御部201から周辺部に対して、認証データ付制御信号1020を出力するタイミングは任意である。例えば、所定時間毎に認証データ付制御信号1020を出力してもよいし、常に認証データ付制御信号1020を出力してもよい。また、例えば制御信号内の制御コマンドデータ1001が特定の種類のコマンドである場合に、認証データ1003を付加するようにしてもよい。
以下に、主制御部201と周辺部との間で行う制御信号の通信例を説明する。まず、主制御部201のCPU211(第1コンピュータ)による各種制御信号の送信処理の手順を、図16のフローチャートを参照して説明する。なお、図16に示す送信処理は、制御信号の送信時に実行されることを前提としている。
主制御部201は、ステップS2201において、認証データの送信タイミングであるか否かを判定する。送信タイミングの判定方法は、予め定められた制御コマンド(例えば、大当たりコマンドなど)であるか否か、予め定められた時間、シーケンスであるか否か、等が一例として挙げられる。主制御部201は、認証データの送信タイミングではないと判定した場合(S2201:No)、ステップS2202において、制御コマンドに対応した通常の制御信号1010を生成して周辺部に対して送信し、本フローチャートによる処理を終了する。
一方、主制御部201は、認証データの送信タイミングであると判定した場合(S2201:Yes)、ステップS2203において、次回認証方式は今回認証方式を継続させるか他の認証方式に切り替えるかを判定する。例えば、認証方式を切り替える予め定められたタイミングであるか否か等に基づいて判定する。主制御部201は、次回認証方式は継続と判定した場合(S2203:継続)、ステップS2204において、次回認証方式を継続させることから、“継続”を示す選択パターンP1を決定する。
主制御部201は、ステップS2205において、選択パターンP1が示すプログラムデータ格納部1100に記憶された所定データ1100b(図11参照)に基づいて、今回の認証方式に対応した認証データをRAM213に生成し、その後ステップS2209の処理に移行する。
また、主制御部201は、次回認証方式は切り替えると判定した場合(S2203:切替)、ステップS2206において、次回認証方式を切り替えることから、“切替”を示す選択パターンP2を決定する。主制御部201は、ステップS2207において、選択パターンP2が示すプログラムデータ格納部1100に記憶された所定データ1100b(図11参照)に基づいて、今回の認証方式に対応した認証データをRAM213に生成する。主制御部201は、ステップS2208において、今回認証方式と切替順番データNPとに基づいて、今回認証方式の次の順番の認証方式を次回認証方式として選択(決定)し、その後ステップS2209の処理に移行する。
主制御部201は、ステップS2209において、前記生成した認証データと制御コマンドに基づいて認証データ付制御信号1020を生成して周辺部に対して送信し、本フローチャートによる処理を終了する。
続いて、周辺部のCPU241,281(第2コンピュータ)による各種制御信号の受信処理の手順を、図17のフローチャートを参照して説明する。
周辺部は、ステップ2301において、主制御部201から制御信号を受信したか否かを判定する。周辺部は、制御信号を受信していないと判定した場合(S2301:No)、この判定処理を繰り返すことで、制御信号の受信を待つ。一方、周辺部は、制御信号を受信したと判定した場合(S2301:Yes)、ステップS2302の処理に移行する。
周辺部は、ステップS2302において、受信した制御信号に認証データが含まれているか否かを判定する。周辺部は、受信した制御信号に認証データが含まれていないと判定した場合(S2302:No)、通常の制御信号1010を受信したものと判断し、ステップS2308の処理に移行する。一方、周辺部は、認証データが含まれていると判定した場合(S2302:Yes)、認証データ付制御信号1020を受信したものと判断し、ステップS2303の処理に移行する。
周辺部は、ステップS2303において、認証データ付制御信号1020に含まれた認証データ1003と前回の認証時に設定された今回認証方式に対応した複数の期待値データの各々とを照合し、認証データ1003と期待値データとが一致するか否かを判定する。周辺部は、期待値データと一致すると判定した場合(S2303:Yes)、ステップS2304において、主制御部201に対する認証を成立させ、ステップS2305の処理に移行する。
周辺部は、ステップS2305において、認証データ1003に一致した期待値データに関連付けられた選択パターンを特定し、該選択パターンに関連付けられた切替判定データに基づいて“継続”、“切替”の何れを示しているかを判定する。そして、周辺部は、その判定結果に基づいて次回認証方式は“継続”と判定した場合(S2305:継続)、ステップS2309の処理に移行する。一方、周辺部は、“切替”と判定した場合(S2305:切替)、ステップS2306において、今回認証方式と切替順番データNPとに基づいて、今回認証方式の次の順番の認証方式を次回認証方式として特定(決定)し、その後ステップS2207の処理に移行する。
周辺部は、ステップS2307において、判定した次回認証方式に対応した複数の期待値データをRAM213の所定領域に設定し、ステップS2308の処理に移行する。そして、周辺部は、ステップS2308において、そのまま制御コマンドデータ1001及び付随データ1002に基づく処理を行って、本フローチャートによる処理を終了する。
一方、周辺部は、認証データ1003と期待値データとが一致しないと判定した場合(2303:No)、ステップS2309において、主制御部201に対する認証を不成立とし、ステップS2310において、制御コマンドデータ1001及び付随データ1002を破棄するとともに、例えばスピーカ262(図2参照)等から報知信号を出力して、本フローチャートによる処理を終了する。
(認証方式の切り替え処理の具体例)
次に、ぱちんこ遊技機において予め定められた3つの認証方式A,B,Cの切り替え処理の一例を、図18に図面を参照して説明する。
まず、ぱちんこ遊技機の起動に応じて、主制御基板310及び周辺基板320が起動されると、主制御基板310は切替順番データNPが示すデフォルトの認証方式Aを今回認証方式として決定する(S2401)。一方、周辺基板320は、主制御基板310と同様に、切替順番データNPが示すデフォルトの認証方式Aを今回認証方式として決定し、該認証方式Aに対応した期待値データをRAM243,283に設定する(S2402)。
即ち、主制御基板310と周辺基板320とは、該起動によって切替順番データNPが示す認証方式A〜Cの初期化を行っている。即ち、認証方式Aの同期をとることになる。また、認証方式A〜Cのデフォルトは任意に定めることができる。さらに、認証方式A〜Cの同期をとる方法については、ぱちんこ遊技機の外部から同期信号を入力させたり、所定の日時等に同期をとる、など種々異なる実施形態とすることができる。
主制御基板310は、周辺基板320に送信する制御コマンドデータ1001が発生すると、予め定められた判定条件(例えば制御コマンドデータ1001の種類、発生回数、等)に基づいて次回認証方式の継続を決定する(S2403)。主制御基板310は、“継続”を示す選択パターンP1を決定し、該選択パターンP1が示すデータ群1100a中の複数の所定データ1100b(図11参照)に基づいて、今回の認証方式Aの認証データ1003を生成して暗号化する(S2404)。そして、主制御基板310は、該生成した認証データ1003を含む認証データ付制御信号1020を生成して周辺基板320に送信し、待機状態となる(S2405)。これにより、選択パターンP1及び認証方式Aに対応した認証データ1003を周辺基板320に送信することができる。
一方、周辺基板320は、認証データ付制御信号1020(認証データ)を受信すると(S2406)、その制御信号から認証データ1003を抽出し、該認証データ1003と今回の認証方式である認証方式Aに対応した複数の期待値データとを照合する。周辺基板320は、認証データ1003と期待値データが一致すると、主制御基板310の認証を成立させ(S2407)、認証データ付制御信号1020の制御コマンドデータ1001に基づく処理を行う。また、周辺基板320は、その認証データ1003から主制御基板310で用いられた選択パターンP1を特定し、該選択パターンP1から今回の認証方式Aを次回の認証でも継続させると判定する(S2408)。
続いて、主制御基板310は、次の制御コマンドデータ1001の発生に応じて、前記判定条件に基づいて次回認証方式の切替を決定すると(S2409)、切替順番データNPが示す認証方式Aの次の認証方式Bを次回認証方式として決定する(S2410)。そして、主制御基板310は、“切替”を示す選択パターンP2を決定し、該選択パターンP2が示すデータ群1100a中の複数の所定データ1100b(図11参照)に基づいて、今回の認証方式Aの認証データ1003を生成して暗号化する(S2411)。そして、主制御基板310は、該生成した認証データ1003を含む認証データ付制御信号1020を生成して周辺基板320に送信し、次回の認証方式Bを今回認証方式に切り替えて、待機状態となる(S2412)。これにより、選択パターンP2及び認証方式Aに対応した認証データ1003を周辺基板320に送信することができる。
一方、周辺基板320は、認証データ付制御信号1020(認証データ)を受信すると(S2413)、その制御信号から認証データ1003を抽出し、該認証データ1003と今回の認証方式である認証方式Aに対応した複数の期待値データとを照合する。周辺基板320は、認証データ1003と期待値データが一致すると、主制御基板310の認証を成立させ(S2414)、認証データ付制御信号1020の制御コマンドデータ1001に基づく処理を行う。そして、周辺基板320は、その認証データから主制御基板310で用いられた選択パターンP2を特定し、該選択パターンP2から今回の認証方式Aを次回の認証では切り替えると判定し、切替順番データNPが示す認証方式Aの次の認証方式Bを次回認証方式として決定する(S2415)。そして、周辺基板320は、該次回認証方式Bに対応した期待値データをRAM243,283の所定領域に設定する(S2416)。
続いて、主制御基板310は、次の制御コマンドデータ1001の発生に応じて、前記判定条件に基づいて次回認証方式の切替を決定すると(S2417)、切替順番データNPが示す認証方式Bの次の認証方式Cを次回認証方式として決定する(S2418)。そして、主制御基板310は、“切替”を示す選択パターンP2を決定し、該選択パターンP2示すデータ群1100a中の複数の所定データ1100b(図11参照)に基づいて、今回の認証方式Bの認証データ1003を生成して暗号化する(S2419)。そして、主制御基板310は、該生成した認証データ1003を含む認証データ付制御信号1020を生成して周辺基板320に送信し、次回の認証方式Cを今回認証方式に切り替えて、待機状態となる(S2420)。これにより、選択パターンP2及び認証方式Bに対応した認証データ1003を周辺基板320に送信することができる。
一方、周辺基板320は、認証データ付制御信号1020(認証データ)を受信すると(S2421)、その制御信号から認証データ1003を抽出し、該認証データ1003と今回の認証方式である認証方式Bに対応した複数の期待値データとを照合する。周辺基板320は、認証データ1003と期待値データが一致すると、主制御基板310の認証を成立させ(S2422)、認証データ付制御信号1020の制御コマンドデータ1001に基づく処理を行う。そして、周辺基板320は、その認証データから主制御基板310で用いられた選択パターンP2を特定し、該選択パターンP2から今回の認証方式Bを次回の認証では切り替えると判定し、切替順番データNPが示す認証方式Bの次の認証方式Cを次回認証方式として決定する(S2423)。そして、周辺基板320は、該次回認証方式Cに対応した期待値データをRAM243,283の所定領域に設定する(S2424)。
以降同様に、主制御基板310は、周辺基板320に新たに送信する制御コマンドデータ1001が発生すると、次回の認証方式を継続させるか切り替えるかを判定し、所定のタイミングでその継続/切替の解読が可能な認証データ1003を有する認証データ付制御信号1020を周辺基板320に送信する。そして、周辺基板320は、その信号から主制御基板310の認証が成立すると、該認証に用いた認証データ1003に基づいて次回の認証方式を継続するか切り替えるかを判断する。周辺基板320は、次回の認証方式を切り替える場合は、切替順番データNPに基づいて次回の認証方法を独自に決定する。
よって、主制御基板310が周辺基板320に次回認証方式としてどの認証方式を選択したかを示すデータを送信する必要がなくなるため、不正解析者による不正な解析をより一層困難にさせることができる。そして、主制御基板310と周辺基板320との間に不正な制御部が介在する等によって不正が発生すると、主制御基板310と周辺基板320との間で認証データの整合(同期)がとれなくなるため、簡単な構成で不正防止に貢献することができる。
また、本発明にかかるぱちんこ遊技機は、主制御部201のみが知っている次回認証方式に対応した選択パターンP1,P2の所定データ1100bを用いて認証データ1003を生成するようにしたことから、認証データ1003も選択パターンP1,P2に応じて変化するため、不正解析者は選択パターンP1,P2を解析できない限り、認証データ1003を解析することはできない。また、主制御部201は、該選択パターンP1,P2を次回認証方式に応じて任意に切り替えて選択することができるため、不正解析者はその切り替えタイミングを知ることができず、認証データ1003に対する不正な解析をより一層困難にすることができる。従って、不正解析者は主制御部201が決定した選択パターンP1,P2を解析できない限り、正規な制御部の改ざん及び正規な主制御部と周辺部との間に不正な制御部が介在されることを防止できる。また、周辺部は複数種類の認証方式に対応した期待値データを記憶しておくだけで、認証データ1003の正当性の判断と選択パターンの解析を行うことができることから、ソフトウェアのデバッグ、評価、等の開発の検証が容易であるため、開発期間の短縮、製品の信頼性の向上、等に貢献することができる。また、1種類の制御コマンド体系でも、セキュリティの向上を図ることが可能であり、ぱちんこ遊技機のコストダウンに貢献することができる。
なお、上述した実施例1,2では、選択パターンP1,P2が示すデータ群1100a中の複数の所定データ1100bから主制御部201が認証データ1003を生成して暗号化し、該暗号化した認証データ1003を制御コマンドに付加した認証データ付制御信号1020を生成する場合について説明したが、本発明の認証データ1003はこれに限定するものではなく、以下のような実施形態とすることもできる。
例えば、主制御部201が上述した所定データ1100bに基づいて生成した認証データ1003を暗号化せずに、そのまま周辺部に送信する。又は、主制御部201が上述した所定データ1100bに付加的な要素(付加データ)として例えば制御コマンド等を付加して認証データ1003を生成して周辺部に送信する。又は、主制御部201がその付加的な要素を付加した認証データ1003をさらに暗号化し、該暗号化認証データ1003を周辺部に送信する。このように本発明の認証データ1003は種々異なる実施形態とすることができるため、不正解析者による認証データ1003の解析をより一層困難にすることができる。
また、上述した実施例1,2では、主制御部201が認証データ付制御信号1020を周辺部に送信する度に、選択パターンP1,P2が示す所定データ1100bに基づいて認証データ1003を生成する場合について説明したが、本発明はこれに限定するものではなく、以下の実施例とすることもできる。
例えば、ぱちんこ遊技機の主制御部201が起動された際に、選択パターンP1,P2が示す所定データ1100bを抽出し、該所定データ1100bに基づいて複数種類の認証方式の1つであるチェックサム等の検査データを生成してRAM213に記憶する。そして、この検査データをチェックすることで、プログラムコード等の改ざんを検証することができる。即ち、検査データは、データ群1100bの正当性、改ざんの有無、等を検査するためのデータとして機能している。よって、CPU211がチェックサム等によって改ざんを検査する機能を有している場合、その機能を流用して検査データを生成することができる。
主制御部201は、上述した送信処理(図12参照)において、制御コマンドデータ1001の発生に応じて次回の認証方式を選択すると、該選択パターンに対応した前記検査データを取得し、該検査データに基づいて認証データ1003を生成する。なお、この認証データ1003は、前記検査データをそのまま用いても良いし、前記検査データを変換、暗号化、等して作成しても良い。そして、主制御部201は、前記検査データから認証データ1003を生成すると、該認証データ1003と制御コマンドデータ1001と付随データ1002とに基づいて認証データ付制御信号1020を生成して周辺部に送信する。
このように構成することで、ぱちんこ遊技機は、起動されて、所定の選択パターンP1,P2が示す所定データ1100bに基づいて前記検査データを生成すると、その後は該検査データに基づいて認証データ1003を生成するようにしたことから、認証データ1003を生成する時の主制御部210の処理負担を低減させることができる。また、検査データによってデータ群1100aに対する不正等を検査することができるため、不正解析者によって解析されてしまう可能性をより一層低減することができる。
また、前記検査データについては、複数種類の認証方式の各々に対応して複数の検査値を作成してRAM213に記憶する実施例、上述したように任意の認証方式に対応した検査データのみをRAM213に記憶する実施例、等の種々異なる実施形態とすることができる。
さらに、上述した主制御部201は、前記検査データを起動時に予め生成してRAM213等の検査データ記憶手段に記憶しておく場合について説明したが、前記検査データは起動後の任意のタイミングで生成しても良い。そして、主制御部201は、認証データを生成する際に、選択パターンに対応した前記検査データが前記検査データ記憶手段に記憶されているか否かを判定する実施形態とすることもできる。そして、主制御部201は、前記検査データが検査データ記憶手段に記憶されている場合には、当該検査データに基づいて前記認証データを生成し、また、前記検査データが検査データ記憶手段に記憶されていない場合には、上述した実施例1,2と同様に、選択パターンP1,P2が示す所定データ1100bに基づいて前記認証データ1003を生成する。
このほかにも、複数種類の選択パターンの中から任意に定めた選択パターンのみに基づいて前記検査データを起動時に生成して前記検査データ記憶手段に記憶しておき、また、前記検査データを予め生成していない選択パターンについては、前記所定データ1100bに基づいて前記認証データを生成する実施形態とすることもできる。