説明

遊技機及び遊技機の認証方法

【課題】遊技機の主制御基板に対する不正行為や誤動作を検知すると共に主制御部の処理負荷を軽減する。
【解決手段】遊技機1は、遊技情報が記憶されたデータ記憶部510と、遊技情報に従って所定の演算を行うメインCPUコア500と、演出制御部203に所定の情報を送信する送信部520と、データ記憶部510に記憶されている検査値を読み込んで、検査値を暗号化して認証データを生成すると共に、認証データを送信部520へ出力するデータ入出力部532を有する暗号化部530とを備える。メインCPUコア500は、制御コマンドを送信部520に送信させるとき、制御コマンドの書き込み信号を送信部520へ出力する。送信部520は、書き込み信号を入力すると制御コマンドを読み込んで中間部20へ送信する。暗号化部530のデータ入出力部532は、前記書き込み信号の入力から所定時間遅延して認証データを送信部520へ送信させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パチンコ店等の遊技店に設置されるパチンコ遊技機、雀球遊技機、アレンジボール等の弾球遊技機、スロットマシン等の回胴式遊技機などの遊技機及び各遊技機で行われる認証方法に関する。
【背景技術】
【0002】
遊技機に対し行われる、メダルや遊技球など(以下、遊技媒体という)を遊技とは無関係に強制的に払い出させる不正行為のうち、主制御部が搭載された主制御基板や周辺部が搭載された周辺基板に関するものとして、例えば以下に示すものがある。
(1)正規な主制御基板と不正な主制御基板との交換
(2)主制御基板に搭載されたCPUが実行する正規なプログラムが記憶されたROMと上記プログラムを改ざんした不正なプログラムが記憶されたROMとの交換
(3)主制御基板と周辺基板との間に不正な基板(なりすまし基板)を設け、かつ上記(2)のROMの交換
【0003】
このような不正行為を防止するため、従来の遊技機には、以下に示すものがあった。すなわち、この遊技機には、第3識別情報を記憶しているメイン制御部(主制御部)と、主制御部に接続され、第1識別情報を記憶している第1サブ制御部(第1周辺部)と、主制御部に接続され、第2識別情報を記憶している第2サブ制御部(第2周辺部)とを備えたものがある。この遊技機では、第1周辺部は、第1識別情報と第2識別情報と第3識別情報を用いて所定演算を行う演算手段と、演算手段の演算結果に基づいて遊技機に不正な改造が行われたか否かを判別する手段を有している(例えば、特許文献1参照。)。以下、この技術を第1の従来例と呼ぶ。
【0004】
また、従来の遊技機には、遊技状況に応じて図柄制御部へデータを送信する主制御装置(主制御部)と、遊技状況に応じ主制御部から受信する制御データに基づいて図柄表示装置を制御する図柄制御部(周辺部)とを備えているものもある。このパチンコ遊技機では、主制御部は、第1鍵データを記憶する第1の記憶手段と、図柄制御部の動作を制御するための制御データに対し第1鍵データに対応する暗号化を行う暗号化手段と、予め定めたタイミングに、第1鍵データを変更する第1鍵変更手段とを備えている。周辺部は、第2鍵データを記憶する第2の記憶手段と、主制御部から受信した暗号データに対し第2鍵データに対応する処理を行うことにより、該受信した暗号データの正当性を判定し、正当である場合に該暗号データを認証する認証手段と、第1鍵データの変更タイミングに合致するように予め定められたタイミングに、第2鍵データを第1鍵データに対応するように変更する第2鍵変更手段とを備えている(例えば、特許文献2参照。)。以下、この技術を第2の従来例と呼ぶ。
【0005】
また、従来のパチンコ遊技機には、主制御基板(主制御部)と、主制御部によって送信された制御コマンドに基づいて所定の処理を行う周辺基板(周辺部)とを備えるものもある。このパチンコ遊技機では、主制御部は、周辺部へ送信する制御コマンドが所定の制御コマンドである場合、主制御部を認証するための認証データを所定の制御コマンドに付加して周辺部へ送信する。そして、周辺部は、所定の制御コマンドを受信すると、この所定の制御コマンドに付加して送信された認証データに基づいて主制御部を認証する(例えば、特許文献3参照。)。以下、この技術を第3の従来例と呼ぶ。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2005−21330号公報
【特許文献2】特開2002−210194号公報
【特許文献3】特開2008−279037号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
第1の従来例では、第1周辺部に搭載されているCPUが第1識別情報と第2識別情報と第3識別情報を用いて所定演算を行い、表示を制御する第2周辺部に搭載されているCPUが上記演算結果に基づいて遊技機に不正な改造が行われたか否かを判別している。
【0008】
このように、CPUに既存の処理(例えば、演出処理)以外に認証処理を実行させるためには、既存の処理に認証機能及び認証タイミングなどの処理を追加する必要がある。このため、認証機能を追加するための設計や検証に多大の時間と労力を要し、これにより、遊技機の開発に時間と手間が大幅にかかってしまうという問題がある。さらに、最近の遊技機の演出の多様化に伴って、CPUが実行すべきプログラムのコードサイズも膨大になる傾向にあるため、認証機能の追加により上記の問題は益々増大する。
【0009】
また、CPUに既存の処理の他に認証処理を実行させる場合、CPUの処理負荷が増大するため、処理速度が低下するなどの問題があった。特に最近では、遊技の興趣向上を図るために遊技者の視覚や聴覚に訴える演出が多様となる傾向にあり、上記問題が発生するおそれが増大する。
【0010】
また、第1の従来例では、周辺部を構成する1つのCPUが1回の認証処理(IDの加算処理)を行っているだけである。さらに、主制御部や周辺部を構成するCPUに既存の処理の他に認証処理を実行させることにより主制御部や周辺部を構成するCPUの処理負荷が増大する。それゆえ、主制御部や周辺部を構成するCPUに、セキュリティをより強化するために今まで以上に複雑な演算による認証処理や複数回の認証処理を実行させることは困難である。
【0011】
一方、第2の従来例では、主制御部では、暗号化手段が制御データに対し第1鍵データに対応する暗号化を行い、第1鍵変更手段が予め定めたタイミングに、第1鍵データを変更している。周辺部では、認証手段が受信した暗号データに対し第2鍵データに対応する処理を行うことにより、受信した暗号データの正当性を判定し、正当である場合に該暗号データを認証し、第2鍵変更手段が第1鍵データの変更タイミングに合致するように予め定められたタイミングに、第2鍵データを第1鍵データに対応するように変更している。つまり、主制御部も周辺部も高度で複雑な暗号化処理及び認証処理を行っている。したがって、第2の従来例では、主制御部を構成するCPUも周辺部を構成するCPUもそれぞれの処理負荷が増大するため、処理速度が低下し、遊技内容の進行に伴う基本処理や演出処理という本来の処理がスムーズに行われないおそれがある。
【0012】
また、第3の従来例では、第1の従来例と同様に、周辺部のCPUに既存のゲーム処理の他に、認証処理を実行させる場合、所定の制御コマンドに認証データを付加して周辺部へ送信しても、主制御部や周辺部のCPUの処理負荷が増大するため、処理速度が低下し、認証処理自体の追加が難しくなったりする設計上の制約が生じることが考えられる。
【0013】
さらに、主制御部や周辺部を構成するCPUに既存の処理の他に認証処理を実行させることにより主制御部や周辺部を構成するCPUが実行するプログラム容量が増大する。それゆえ、ソフトウェア制御の柔軟性や拡張性を維持しながらも、主制御部や周辺部を構成するCPUにセキュリティをより強化するために、今まで以上に複雑な演算による認証処理や複数回の認証処理を実行させることは困難である。
【0014】
ところで、遊技機は、外部から電気的な雑音や機械的な振動等が加えられた場合、誤動作する場合がある。例えば、主制御部から周辺部に制御コマンドが送信されている際に、電磁波や静電気などの雑音が遊技機外部から加えられると、この雑音の影響により制御コマンドデータにビットエラーが発生し、制御コマンドが変更されてしまうという誤動作が生じる。ところが、第1〜第3の従来例では、このような誤動作の問題について何ら対策を施していないので、遊技店が多大な損害を被るという問題を解決することができない。
【0015】
本発明は、上記事情に鑑みてなされたものであり、遊技機の正規の主制御基板と不正な主制御基板との交換等による不正行為や遊技機の誤動作を検知でき、主制御部や周辺部のCPUの処理負荷を軽減することができ、更に認証機能を追加する際の設計自由度が高い遊技機及び遊技機の認証方法を提供することを目的とする。
【課題を解決するための手段】
【0016】
上記課題を解決するために本発明は、主制御手段(主制御部10)と、前記主制御手段が出力する所定の情報に応じて処理を行う副制御手段(周辺部30)と、前記主制御手段と前記副制御手段との間に設けられた中間制御手段(中間部20)とを備えた遊技機であって、前記主制御手段は、所定の遊技情報が記憶されている情報記憶部(データ記憶部510)と、前記情報記憶部に記憶されている遊技情報に従って所定の演算を行う演算処理部(メインCPUコア500)と、所定の情報を前記中間制御手段へ送信する情報送信部(送信部520)と、前記情報記憶部に記憶されている特定の情報を読み込んで、前記情報記憶部に記憶されている情報の正当性を認証するための認証情報を生成する認証情報生成部(暗号化部530)と、前記認証情報生成部が生成した認証情報を記憶する認証情報記憶部(暗号化部530の認証データ記憶領域)と、前記認証情報記憶部に記憶されている認証情報を前記情報送信部に送信させる認証情報送信指示部(データ入出力部532)とを備え、前記演算処理部は、所定の演算結果の情報を前記情報送信部に送信させるための送信指示命令を前記情報送信部へ出力し、前記情報送信部は、前記送信指示命令が入力されると、前記所定の演算結果の情報を受け取り、受け取った前記所定の演算結果の情報を前記中間制御手段へ送信し、前記認証情報送信指示部は、前記演算処理部から前記情報送信部へ出力された前記送信指示命令を入力し、該送信指示命令を入力すると所定時間遅延して、前記認証情報記憶部に記憶されている認証情報を前記情報送信部に送信させ、前記中間制御手段は、前記情報送信部にて送信された認証情報を受信し、受信した認証情報に基づいて、前記情報記憶部に記憶されている情報を認証することにより、前記主制御手段の正当性を認証することを特徴とする。
【発明の効果】
【0017】
本発明によれば、暗号化制御回路(ハードウェア)で構成される暗号化部が、主制御部の個体認証に必要な認証データを、プログラムコードに記述されたメインCPUコアからの指示によらず、独自に保持するアルゴリズムに従って生成し、中間部へ自動的に送信している。また、認証データの復号化に必要な鍵データは、メインCPUコアからの読み出し指示のみで暗号化制御回路から出力され、中間部へ送信される。従って、主制御部に対する認証機能を有しながらも、認証機能を有することで増大する主制御部のCPUの処理負荷やプログラム容量を最大限抑制することができ、パチンコ遊技機のセキュリティ強度の向上と処理速度の向上とを両立させることができる。また、本発明によれば、認証データ及び鍵コマンドの送信タイミングの設定や鍵データの更新タイミング等は、特定時間経過後や特定クロック数経過後など自由なタイミング設計が可能であり、ソフトウェア制御の拡張性や柔軟性も備えた認証機能を提供することができる。
【0018】
また、本発明によれば、認証データの復号化処理や検査値と期待値との照合処理といった認証処理の大部分は中間部が実行する。よって、演出制御部で認証処理が実行されるのは、中間部から認証結果データを受信した場合のみである。すなわち、認証処理を行うことによって演出制御部のCPUの処理負荷が増大するのは、認証結果データを受信したときのみであるため、演出制御部の処理負荷が増大する割合を抑えることができる。また、演出制御部が実行するプログラムコードには認証結果データ解析処理に関するプログラムコードを追加するだけでよい。従って、演出制御部が実行するプログラムコード全体にわたっての新たなタイミング設計を行う必要がないので、認証結果データの解析機能を追加するだけのタイミング設計で済み、機能の実装、機能の検証などを、より簡単に少ない作業工数で実施することができる。また、このことで認証処理に関する機能を追加する際の設計自由度を高くすることができる。
【図面の簡単な説明】
【0019】
【図1】本発明の実施の形態に係るパチンコ遊技機の外観構成の一例を示す正面図である。
【図2】本発明の実施の形態に係るパチンコ遊技機の電気的構成の一例を示すブロック図である。
【図3】本発明の実施の形態に係るパチンコ遊技機を構成する主制御部の認証処理に関する電気的構成の一例を示すブロック図である。
【図4】図3に示す主制御部の構成を詳細に説明するためのブロック図である。
【図5】本発明の実施の形態に係るパチンコ遊技機を構成する主制御部が出力する制御コマンドの種別の一例を示す図である。
【図6】本発明の実施の形態に係るパチンコ遊技機を構成する主制御部による演出制御部へのコマンド送信を含む動作におけるフローチャートの一例を示す図である。
【図7】本発明の実施の形態に係るパチンコ遊技機を構成する主制御部による認証処理におけるフローチャートの一例を示す図である。
【図8】本発明の実施の形態に係るパチンコ遊技機を構成する主制御部による認証処理におけるタイムチャートの一例を示す図である。
【図9】本発明の実施の形態に係るパチンコ遊技機を構成する中間部による認証処理におけるフローチャートの一例を示す図である。
【図10】本発明の実施の形態に係るパチンコ遊技機を構成する演出制御部によるメイン処理におけるフローチャートの一例を示す図である。
【図11】本発明の実施の形態に係るパチンコ遊技機を構成する演出制御部による割込処理におけるフローチャートの一例を示す図である。
【図12】本発明の実施の形態に係るパチンコ遊技機を構成する演出制御部によるコマンド解析処理におけるフローチャートの一例を示す図である。
【図13】本発明の実施の形態に係るパチンコ遊技機を構成する演出制御部による認証結果データ解析処理におけるフローチャートの一例を示す図である。
【発明を実施するための形態】
【0020】
以下、図面を参照して本発明を実施するための形態について説明する。
[遊技機の基本構成]
図1は、本発明の実施の形態に係る遊技機の1つであるパチンコ遊技機1の外観構成を示す正面図である。また、図2は、図1に示すパチンコ遊技機1の電気的構成を示すブロック図である。
【0021】
本実施の形態に係るパチンコ遊技機1は、遊技盤101を備えている。遊技盤101の図1において右下方であって、枠部材110の右下部には、遊技者によって操作され、発射部292(図2参照)を作動させるための操作ハンドル113が設けられている。操作ハンドル113は、遊技者側に突出する形状を呈している。操作ハンドル113は、発射部292を作動させて遊技球を発射させる発射指示部材114を備えている。発射指示部材114は、操作ハンドル113の外周部において、遊技者から見て右回りに回転可能に設けられている。発射部292は、発射指示部材114が遊技者によって直接操作されている場合に、遊技球を発射させる。公知の技術であるため説明を省略するが、操作ハンドル113には、遊技者が発射指示部材114を直接操作していることを検出するセンサなどが設けられている。
【0022】
発射部292の作動によって発射された遊技球は、レール102a,102b間を上昇して遊技盤101の上部位置に達した後、遊技領域103内を落下する。遊技領域103には、複数の釘(図示せず)や、遊技球の落下方向を変化させる風車(図示せず)や、入球口が配設されており、遊技球を各種の方向に向けて落下させるようにしている。ここで、「入球口」は、いずれも後述する第1始動口105、第2始動口120、普通入賞口107、第1大入賞口109c、第2大入賞口129cの総称である。
【0023】
遊技盤101の略中央部分には、図柄表示部104が配置されている。図柄表示部104は、例えば、液晶ディスプレイ(LCD)やプラズマディスプレイパネル(PDP)等のディスプレイを有している。図柄表示部104の下方には、遊技領域103に向けて打ち込まれた遊技球を受入れ可能な第1始動口105が配置されている。第1始動口105の下方には、第2始動口120が配置されている。第2始動口120は、一対の可動片(図示せず)が閉状態であるときは遊技球を受け入れることが不可能又は受け入れ困難となっており、この一対の可動片が開状態であるときは、第1始動口105よりも遊技球の受け入れが容易となる。
【0024】
また、図柄表示部104の左側には、入賞ゲート106が配設されている。入賞ゲート106は、遊技球の通過を検出し、第2始動口120を一定時間だけ開放させる普通図柄の抽選を行うために設けられている。図柄表示部104の左側部や下方等には、複数の普通入賞口107が配設されている。各普通入賞口107に遊技球が入球すると、所定の賞球数(例えば、10個)の払い出しが行われる。遊技領域103の最下部には、どの入球口にも入球しなかった遊技球を回収する回収口108が設けられている。
【0025】
図柄表示部104は、後述する演出制御部203(図2参照)から第1始動口105又は第2始動口120に遊技球が入球したことが報知されたときに、複数の装飾図柄の変動表示を開始し、所定時間経過後に当該装飾図柄の変動を停止させる。この停止時に特定図柄(例えば、「777」)が揃うと、遊技者は第1大当たり遊技(長当たり遊技)を実行する権利を獲得したこととなり、その後、第1大当たり遊技(長当たり遊技)が開始される。第1大当たり遊技(長当たり遊技)が開始されると、遊技領域103の下方に位置する第1大入賞口開閉装置109における第1大入賞口開閉扉109aが、一定の期間開放する動作を所定回数(例えば、15回)繰り返し、入球した遊技球に対応する賞球が払い出される。
【0026】
一方、図柄表示部104における上記装飾図柄の停止時に上記特定図柄とは別の特定図柄(例えば、「737」)が揃うと、遊技者は第2大当たり遊技(短当たり遊技)を実行する権利を獲得したこととなり、その後、第2大当たり遊技(短当たり遊技)が開始される。第2大当たり遊技(短当たり遊技)が開始されると、第1大入賞口開閉装置109の右斜め上方に位置する第2大入賞口開閉装置129における第2大入賞口開閉扉129aが、第1大入賞口開閉扉109aの開閉動作に比して短い時間にて一定の期間開放する動作を所定回数(例えば、15回)繰り返し、入球した遊技球がある場合、これに対応する賞球が払い出される。
【0027】
また、遊技盤101の遊技領域103の外周には、枠部材110が設けられ、開口部から遊技領域103が遊技者側に露出している。枠部材110は、遊技者側に突出する形状を呈している。枠部材110において、遊技領域103の左上部及び右下部には、演出ライト(ランプユニット)111a及び111bがそれぞれ設けられている。各演出ライト111a及び111bは、複数のライト112を備えている。各演出ライト111a及び111bは、上下駆動モータ(図示せず)でそれぞれ駆動されることにより、それぞれが備える複数のライト112から照射される光の方向を上下方向、すなわち、パチンコ遊技機1の正面にいる遊技者の頭部と腹部を結ぶ方向に平行な方向に変更可能に構成されている。
【0028】
また、各ライト112は、各演出ライト111a及び111bを構成する回転駆動モータ(図示せず)で駆動されることにより、それぞれ所定半径を有する円の円周方向に移動する。上記構成により、各ライト112から照射された光を回転移動させつつ、各演出ライト111a及び111b全体から照射された光を上下移動させる演出を行うことができる。さらに、枠部材110の下部には、遊技球が供給される受け皿ユニット119が設けられている。この受け皿ユニット119には、貸し玉装置(図示せず)から貸し出される遊技球が供給される。
【0029】
図1において、図柄表示部104の右側には、演出用の役物(以下、「演出役物」という)115が設けられている。演出役物115は、キャラクターとして人間の上半身(特に頭部)を模式的に表している。演出役物115は、キャラクターの瞼部116を開閉して、キャラクターが瞬きをするが如くに、瞼部116を上下方向に沿って移動可能に設けられている。また、演出役物115は、キャラクターの頭部を左右方向に移動可能に設けられている。
【0030】
また、枠部材110において、操作ハンドル113の左側には、遊技者により操作される演出ボタン117が設けられている。演出ボタン117の操作は、例えば、遊技中における特定のリーチ演出に際し、演出ボタン117の操作を促すガイダンスが表示されている間だけ有効となる。
【0031】
加えて、枠部材110には、演出効果音又は不正を知らしめる音響を出力するスピーカ277(図2参照)が組み込まれている。このスピーカ277は、高音・中音・低音の領域を出力できるタイプのものであり、通常演出時は高音・中音・低音をバランスよく出力するが、例えば、特別演出時又は不正等があった場合には、周りによく聞こえるように高音領域を高く出力するように制御される。
【0032】
次に、本発明の実施の形態に係るパチンコ遊技機1の電気的構成について、図2に示すブロック図を参照して説明する。パチンコ遊技機1は、電気的な構成上は、制御手段200に、第1始動口検出部221等の各種検出手段や、図柄表示部104等の各種演出手段、役物作動装置231、払出部291、発射部292などが接続されて構成されている。制御手段200は、図2に示す例では、主制御部10と、中間部20と、演出制御部203と、賞球制御部204と、ランプ制御部205とから構成されている。
【0033】
主制御部10は、CPU10aと、ROM10bと、RAM10cと、暗号化制御回路10gと、カウンタ回路(タイマ)(図示せず)から少なくとも構成されるワンチップマイコン10m等を備えている。CPU10aは、パチンコ遊技機1の遊技に係る基本動作を制御し、ROM10bに予め記憶されているプログラム(プログラムコード)に基づき、遊技内容の進行に伴う基本処理を実行する。ROM10bには、CPU10aがパチンコ遊技機1の遊技内容の進行に伴う基本処理を実行するためのプログラムコードが予め記憶されている。
【0034】
RAM10cは、CPU10aがパチンコ遊技機1の遊技内容の進行に伴う基本処理を実行する際に行う演算処理において、データ等のワークエリアとして機能する。暗号化制御回路10gは、主制御部10の個体としての正当性(アイデンティティ)を認証する(以下、単に「個体認証」という)ために用いる検査値を取得し、検査値に対して暗号化処理を施して認証データを生成する。また、暗号化制御回路10gは、生成した認証データを演出制御部203へ送信する処理を制御する。なお、これら認証処理に関するものの詳細については後述する。また、カウンタ回路(タイマ)は、経過時間をカウントする。この主制御部10では、第1始動口105又は第2始動口120への遊技球の入球を契機として、大当たりの抽選を行うとともに、この抽選結果に基づいて、ROM10bに記憶されている演出に係わる制御コマンドの選択を行う。
【0035】
主制御部10の入力側には、第1始動口検出部221と、第2始動口検出部225と、ゲート検出部222と、普通入賞口検出部223と、第1大入賞口検出部214と、第2大入賞口検出部224とが接続されている。第1始動口検出部221は、第1始動口105に遊技球が入球したことを検出して検出結果を主制御部10へ送信する。第2始動口検出部225は、第2始動口120に遊技球が入球したことを検出して検出結果を主制御部10へ送信する。ゲート検出部222は、入賞ゲート106を遊技球が通過したことを検出して検出結果を主制御部10へ送信する。普通入賞口検出部223は、普通入賞口107に入球した遊技球を検出して検出結果を主制御部10へ送信する。第1大入賞口検出部214は、第1大入賞口109cに入球した遊技球を検出して検出結果を主制御部10へ送信する。第2大入賞口検出部224は、第2大入賞口129cに入球した遊技球を検出して検出結果を主制御部10へ送信する。上記各検出部は、例えば、近接スイッチなどを用いて構成することができる。
【0036】
また、この主制御部10の出力側には、役物作動装置231が接続されている。本実施の形態では、役物作動装置231は、第1大入賞口開閉扉109a及び第2大入賞口開閉扉129aをそれぞれ開閉させる第1大入賞口開閉ソレノイド109b及び第2大入賞口開閉ソレノイド129bと、第2始動口120を開閉させる第2始動口開閉ソレノイド120bとから構成されている。
【0037】
役物作動装置231は、主制御部10によって制御され、長当たり遊技時に、第1大入賞口開閉ソレノイド109bを通電して第1大入賞口開閉扉109aを開放したり、短当たり遊技及び小当たり遊技時に、第2大入賞口開閉ソレノイド129bを通電して第2大入賞口開閉扉129aを開放したり、また、上記普通図柄の当選によって第2始動口開閉ソレノイド120bを通電して第2始動口120を開閉したりする。
【0038】
中間部20は、CPU20aと、ROM20bと、RAM20c等を備えている。CPU20aは、主にパチンコ遊技機1の認証に係る動作を制御し、ROM20bに予め記憶されているプログラム(プログラムコード)に基づき認証処理を実行する。ROM20bには、CPU20aが処理を実行するためのプログラムコードに加え、主制御部10を構成するROM10bに予め記憶された主制御部10固有の情報である検査値に対応する期待値が予め記憶されている。RAM20cは、CPU20aが処理を実行する際に行う演算処理や認証処理を実行する際に行う演算処理等のワークエリアとして機能する。
【0039】
演出制御部203は、CPU203aと、ROM203bと、RAM203cと、VRAM203d等を備えている。CPU203aは、主にパチンコ遊技機1の遊技中における演出を制御し、ROM203bに予め記憶されているプログラム(プログラムコード)に基づき、主制御部10から中間部20を介して送信される制御信号にて示された制御コマンドに基づいて演出の抽選及び演出処理を実行する。ROM203bには、CPU203aが演出の抽選及び演出処理を実行するためのプログラムコードと、過去の演出パターンとが予め記憶されている。また、ROM203bには、主制御部10に予め記憶された主制御部10固有の情報である検査値に対応する期待値が予め記憶されている。RAM203cは、CPU203aが演出の抽選及び演出処理を実行する際に行う演算処理等を実行する際に行う演算処理等のワークエリアとして機能する。VRAM203dには、図柄表示部104に表示させるための画像データが書き込まれる。
【0040】
この演出制御部203は、主制御部10から中間部20を介して送信される演出に係る制御コマンドを示す制御信号を受信すると、この制御信号にて示された制御コマンドに基づいて抽選を行い、演出背景パターン、リーチ演出パターン、登場キャラクター等の演出を確定するとともに、当該確定した演出の制御を行う。
また、演出制御部203の出力側には、図柄表示部104が接続されており、抽選によって決定された内容のとおりに、図柄表示部104に、例えば、図柄変動の演出表示を展開する。
【0041】
そして通常、CPU203aがROM203bに記憶されたプログラムコードを読み込んで、背景画像表示処理、図柄画像表示及び変動処理、キャラクター画像表示処理など各種画像処理を実行し、必要な画像データをROM203bから読み出してVRAM203dに書き込む。背景画像、図柄画像、キャラクター画像は、表示画面上において図柄表示部104に重畳表示される。
すなわち、図柄画像やキャラクター画像は背景画像よりも手前に見えるように表示される。このとき、同一位置に背景画像と図柄画像が重なる場合、Zバッファ法など周知の陰面消去法により各画像データのZバッファのZ値を参照することで、図柄画像を優先してVRAM203dに記憶させる。
【0042】
演出制御部203の入力側には、上記演出ボタン117が操作されたことを検出する演出ボタン検出部220が接続されている。また演出制御部203の出力側には、スピーカ277が接続されており、演出制御部203において確定したとおりに、音声が出力されるようにしている。
また演出制御部203の出力側には、ランプ制御部205を備えている。
【0043】
ランプ制御部205は、演出制御部203から送信された制御信号にて示された制御コマンドに基づきROM205bから読み込んだプログラムを作動させて演出処理を実行するCPU205aと、上記プログラムコード及び各種演出パターンデータを記憶するROM205bと、CPU205aの演算処理時におけるデータのワークエリアとして機能するRAM205c等を備えている。ランプ制御部205は、ランプ262、演出ライト111a及び111b、演出役物作動装置254を制御する。演出役物作動装置254は、演出役物115等の、演出用の役物を作動させるモータやソレノイド等によって構成されている。
【0044】
ランプ制御部205は、遊技盤101や台枠等に設けられている各種ランプ262に対する点灯制御等を行い、また、演出ライト111a及び111bをそれぞれ構成する複数のライト112に対する点灯制御等を行い、各ライト112からの光の照射方向を変更するためにモータに対する駆動制御等を行う。
また、ランプ制御部205は、演出制御部203から送信された制御信号にて示された制御コマンドに基づき、演出役物115を動作させる演出役物作動装置254のソレノイドや、瞼部116を動作させる演出役物作動装置254のモータに対する駆動制御等を行う。
【0045】
賞球制御部204は、主制御部10と送受信可能に接続されている。賞球制御部204は、ROM204bに記憶されたプログラムコードに基づき、賞球制御を行う。この賞球制御部204は、ROM204bに記憶されたプログラムを作動して賞球制御の処理を実行するCPU204aと、CPU204aの演算処理時におけるデータのワークエリアとして機能するRAM204c等を備えている。
【0046】
賞球制御部204は、接続される払出部291に対して、各入球口(第1始動口105、第2始動口120、普通入賞口107、第1大入賞口109c、第2大入賞口129c)に入球した遊技球に対応した賞球数を払い出す制御を行う。また、賞球制御部204は、発射部292に対する遊技球の発射の操作を検出し、遊技球の発射を制御する。発射部292は、遊技のための遊技球を発射するものであり、遊技者による遊技操作を検出するセンサ(図示せず)と、遊技球を発射させるソレノイド等(図示せず)を備えている。賞球制御部204は、発射部292のセンサにより遊技操作を検出すると、検出された遊技操作に対応してソレノイド等を駆動させて遊技球を間欠的に発射させ、遊技盤101の遊技領域103に遊技球を送り出す。
払出部291は、遊技球の貯留部から所定数を払い出すためのモータ等からなる。
【0047】
ここで、上記構成の演出制御部203、賞球制御部204、及びランプ制御部205を総称して「周辺部30」とする。また、主制御部10と、中間部20と、演出制御部203と、賞球制御部204と、ランプ制御部205とは、それぞれ異なるプリント基板(例えば、主制御部10は主制御基板、中間部20は中間基板、演出制御部203は演出制御基板、賞球制御部204は賞球制御基板、ランプ制御部205はランプ制御基板)に搭載されている。これらのうち、演出制御基板、賞球制御基板、及びランプ制御基板を総称して「周辺基板」とする。なお、中間部20及びランプ制御部205は、演出制御部203と同一のプリント基板上に搭載することもできる。また、賞球制御部204は、主制御部10と同一のプリント基板上に搭載することもできる。
【0048】
[遊技機の認証に関する構成]
次に、上記構成のパチンコ遊技機1が不正防止のために有する認証機能を実現する手段について、図面を参照しながら説明する。本実施の形態に係るパチンコ遊技機1の認証機能は、中間部20が主制御部10に対する個体認証を行うことによって実現される。そして、中間部20で得られた認証結果は周辺部30へ送信され、周辺部30にて受信した認証結果に応じた処理が行われる。なお、本実施の形態では、中間部20で得られた認証結果は、周辺部30のうち演出制御部203へ送信され、演出制御部203が認証結果に応じた処理を行うこととして説明する。
【0049】
具体的には、主制御部10が保持する固有の情報を検査値とし、中間部20に予め記憶されている主制御部10固有の情報に対応する情報を期待値として、検査値と期待値とが一致すると主制御部10に対する個体認証が成功したと判断される。中間部20は、得られた主制御部10に対する個体認証の結果を、演出制御部203へ送信する。演出制御部203は、中間部20から送信された認証結果を参照し、参照した認証結果に応じた処理を行う。また、主制御部10は、認証処理を実行するに際して、検査値を生成し中間部20へ送信するが、送信前に暗号鍵を用いて検査値に暗号化処理を施す。中間部20は、暗号化された検査値に対して復号化処理を施して検査値を抽出する。本実施の形態では、検査値に対して暗号化処理を施して得られたデータを「認証データ」という。また、検査値に対する暗号化処理に用いる暗号鍵、及び認証データに対する復号化処理に用いる復号鍵を総称して「鍵データ」という。
【0050】
図3は、本発明の実施の形態に係るパチンコ遊技機1を構成する主制御部10の認証処理に関する電気的構成を示すブロック図である。主制御部10は、メインCPUコア500と、データ記憶部510と、送信部520と、暗号化部530と、パルス発生部540と、内部バス550とを少なくとも備えている。以下、メインCPUコア500、データ記憶部510、送信部520、暗号化部530、パルス発生部540、又は内部バス550を総称して「主制御部10の構成部」という。
【0051】
メインCPUコア500は、パチンコ遊技機1の認証処理の進行に伴う基本動作を制御する。メインCPUコア500は、データ記憶部510に記憶され予め取り決められた認証処理に関する処理内容や手順を記述したプログラムコードに基づいて、認証処理を進行させる際に行う各種演算処理を実行する。例えば、メインCPUコア500は、認証処理に関する制御コマンドを実行し、主制御部10の認証処理に係る他の回路に指示し認証処理を制御する。なお、メインCPUコア500が有する機能を実現する手段は、例えば、図2に示すCPU10aの一部から構成することができる。
【0052】
データ記憶部510には、メインCPUコア500がパチンコ遊技機1にて認証処理を実行するための認証処理に関するプログラムコードが予め記憶されている。また、データ記憶部510には、主制御部10に対する個体認証を行うために用いる検査値が記憶されている。データ記憶部510は、メインCPUコア500や暗号化部530の読み出し指示に従って、認証処理に関するプログラムコードや検査値を転送する。ここで、「転送」とは、主制御部10の各構成部間のデータや信号の移動を意味する。また、「受け渡し」とは、主制御部10の各構成部内のデータや信号の移動を意味する。また、「送信」とは、例えば主制御部10の外部(例えば、中間部20)へのデータや信号の伝送を意味する。なお、データ記憶部510が有する機能を実現する手段は、例えば、図2に示すROM10bの一部から構成することができる。
【0053】
送信部520は、メインCPUコア500や暗号化部530から転送された制御コマンドやデータ等を、中間部20や中間部20を介して演出制御部203へ送信するためのインターフェイスの役割を果たす。例えば、送信部520は、メインCPUコア500が認証処理に関する制御コマンドを実行して中間部20に認証処理を実行させる際に、メインCPUコア500から認証処理に関する制御コマンドに対応した制御コマンドデータを受け取る。そして送信部520は、受け取った制御コマンドデータを制御信号に変換し中間部20へ送信する。なお、送信部520が有する機能を実現する手段は、上記変換機能を有する公知の入出力装置から構成することができる。但し、主制御部10から中間部20への一方向のみ伝送可能となっている。
【0054】
なお、制御信号は、制御コマンドの内容を表す制御コマンドデータに誤り検出符号等を付加して構成されたデータを電気信号に変換したものを意味するが、以下、「制御コマンド」という言葉には、中間部20や演出制御部203などへの制御命令の意味だけではなく、制御コマンドデータや制御信号の意味も含まれるものとする。また、制御信号を中間部20や演出制御部203などへ送信することを単に「制御コマンドを送信する」という。また、「制御コマンドを書き込む」とは、制御コマンドデータのみを書き込むことに限定されず、制御信号を構成する制御コマンドデータ以外のデータの書き込みも含まれているものとする。
【0055】
暗号化部530は、いわゆるハードウェアであって、自身が保持するアルゴリズムに従って検査値を暗号化する際の暗号鍵として鍵データを生成するとともに、データ記憶部510から転送された検査値を暗号化して認証データを生成する。そして、暗号化部530は、生成した認証データを予め取り決められた所定のタイミングによって送信部520へ転送し、中間部20へ送信させる。また、暗号化部530は、メインCPUコア500からの読み出し指示に従って、生成した鍵データをメインCPUコア500に転送する。なお、暗号化部530が有する機能を実現する手段は、例えば、図2に示す暗号化制御回路10gから構成することができる。
【0056】
パルス発生部540は、メインCPUコア500、送信部520、及び暗号化部530に対してクロック信号を送る。パルス発生部540と接続されたメインCPUコア500等は、受け取ったクロック信号を基に互いの動作を同期させている。また、メインCPUコア500等は、パルス発生部から受け取ったクロック信号をカウントして割込処理等を行う際のタイマ機能を保有している。パルス発生部540が有する機能を実現する手段は、公知のクロックパルス発生装置から構成することができる。内部バス550は、メインCPUコア500と暗号化部530とのデータの転送など、主制御部10を構成する構成要素が互いに各種データや信号をやり取りするための経路である。内部バス550は、アドレスバス及びデータバスの機能を少なくとも含み、内部バス550が有する機能を実現する手段は、公知の信号線から構成することができる。
【0057】
次に、認証処理時における主制御部10の各構成部の処理について説明する。図4は、図3に示した主制御部10の構成を詳細に説明するためのブロック図である。
パチンコ遊技機1の電源が投入され、メインCPUコア500が初期設定処理を行った後、主制御部10を構成する暗号化部530は、鍵データの生成を開始する。暗号化部530が鍵データの生成を開始するタイミングは、メインCPUコア500からの指示によらず、暗号化部530が保持するアルゴリズムで予め設定されている。具体的には、暗号化部530を構成する鍵決定部531は、例えば、乱数生成回路(図示せず)や乱数生成アルゴリズムなどの自身が保持する乱数生成手段によって生成された値を鍵データとする。
【0058】
なお、鍵決定部531は、乱数を用いないで鍵データを決定するようにしてもよい。例えば、鍵決定部531は、鍵データを決定するためのデータテーブルを予め保持させておき、鍵データを生成するタイミング等で鍵決定部531がそのテーブルから予め定めた規則に応じて鍵データを取得するようにしてもよい。また、鍵決定部531は、一度に1つの鍵データを生成して一意に決定してもよいし、一度に複数の鍵データを生成し複数の鍵データの中から1つの鍵データを選択し、今回の認証処理で使用する鍵データを決定してもよい。但し、今回の認証処理で使用する鍵データを決定するタイミングは、後述するメインCPUコア500への鍵データの出力よりも前とする。
【0059】
続いて、暗号化部530は、主制御部10に対する個体認証を行うために用いる検査値をデータ記憶部510から取り込む。具体的には、暗号化部530を構成する暗号回路533が、データ記憶部510を構成するデータ記憶回路511が有する検査値を、内部バス550及びデータ入出力部532を介して転送させる。そして、暗号回路533は、データ入出力部532に書き込まれた検査値を、暗号回路533自身が保持する検査値用記憶領域に記憶させる。検査値は、主制御部10が保持する固有の情報であれば特に限定されない。例えば、メインCPUコア500に固有に付与されている識別番号(ID)の他、データ記憶回路511に記憶されている特定のアドレスに記憶されているデータ(制御コマンドデータ、命令コード及び固定データ等)のチェックサム等が考えられる。
【0060】
暗号回路533は、取り込んだ検査値を検査値用記憶領域から読み出し、予め鍵決定部531で生成した鍵データを用いて暗号化処理を施し、認証データを生成する。暗号化処理の演算方式(以下、「暗号化方式」という)は、主制御部10と中間部20や演出制御部203との間で予め取り決めてあれば、特に限定されない。暗号化方式は、例えば、検査値と鍵データとを用いた四則演算又は論理演算等を行って所定のデータ長を有する演算データを得る処理方式、これらの四則演算又は論理演算等により得られた演算データのビット配列を並び変える処理方式、上記演算データのビットをシフト又はローテイトする処理方式、検査値を構成する複数のビットを取り出して所定の規則に従って並べて1つのデータを生成する処理方式などである。
【0061】
暗号回路533は、認証データを生成すると、自身の認証データ用記憶領域に記憶し、中間部20へ認証データを送信するタイミングまで保持しておく。そして、暗号回路533は、中間部20への認証データの送信タイミングを設定する。認証データの送信タイミングは、メインCPUコア500からの指示によらず、暗号化部530が保持するアルゴリズムで予め設定されている。暗号回路533は、認証データの送信タイミングになると、データ入出力部532及び内部バス550を介して主制御部10を構成する送信部520へ認証データを転送し、中間部20へ送信させる。具体的には、暗号回路533は、認証データの送信タイミングとなると、生成した認証データをデータ入出力部532へ受け渡す。データ入力部532は、受け渡された認証データを直ちに内部バス550を介して送信部520を構成するデータ入力部522へ書き込む。なお、鍵決定部531が鍵データを生成するタイミングと暗号回路533が検査値を取得するタイミングとは、暗号回路533が認証データをデータ入出力部532へ受け渡す前であれば特に制限はない。また、認証データの送信タイミングや送信部520の構成については後述する。
【0062】
一方、主制御部10を構成するメインCPUコア500は、中間部20に認証処理を開始させるトリガとなる鍵コマンドを実行する。具体的には、メインCPUコア500を構成する処理部501は、認証処理に関するプログラムコードに従って、鍵コマンドの実行するために必要な鍵データを取得する。より詳細には、メインCPUコア500を構成する処理部501は、鍵決定部531で決定された鍵データを取得するために、メインCPUコア500を構成するデータ入力出部502、内部バス550、及びデータ入出力部532を介して、鍵決定部531に対して鍵データの読み出し指示を行う。鍵決定部531は、処理部501からの鍵データの読み出し指示を受けると、予め決定した鍵データをデータ入力出部532へ受け渡す。データ入出力部532は、受け渡された鍵データを直ちに内部バス550を介してデータ入出力部502へ出力する。データ入出力部502は、出力された鍵データを処理部501に受け渡す。処理部501は、受け取った鍵データを用いて鍵コマンドを生成して、直ちに内部バス550及びデータ入出力部502を介して送信部520を構成するデータ入力部522へ書き込む。なお、鍵コマンドの詳細とその送信タイミングについては後述する。
【0063】
送信部520は、主制御部10の各構成部からデータを転送されると、受け取ったデータを直ちに中間部20へ送信する。例えば、メインCPUコア500から内部バス550を介して送信部520を構成するデータ入力部522へ制御コマンドが書き込まれると、データ入力部522は、書き込まれた制御コマンドを直ちに送信回路521へ受け渡す。送信回路521は、受け渡された制御コマンドを送信データとして、直ちに中間部20へ送信する。
【0064】
なお、主制御部10の各構成部がデータ入力部522へデータを書き込む際には、内部バス550内で他のデータとの衝突が生じないように、データ入力部522へ書き込むデータと同時に各構成部から書き込み信号が出力される。内部バス550は、出力された書き込み信号を通じて内部バス550を通るデータの割り当てを行う。書き込み信号を出力していない他の構成部は、内部バス550に通じる書き込み信号を参照することで、何のデータがデータ入力部522へ書き込まれているのかを知ることができる。例えば、メインCPUコア500からデータ入力部522へ制御コマンドが書き込まれる際に、その旨を示す書き込み信号が出力されると、暗号化部530は、当該書き込み信号を参照して現在はメインCPUコア500が制御コマンドをデータ入力部522へ書き込んでいることを知ることができる。
【0065】
一方、送信部530は、内部バス550を通じてデータ入力部522へ書き込むデータとその旨を示す書き込み信号とが入力されると、内部バス550から当該データを読み込んでデータ入力部522に書き込む。そして、送信部530は、データ入力部522にデータが書き込まれると、書き込まれたデータを送信回路521に受け渡し、送信データを構成して直ちに中間部20へ送信する。従って、例えば、暗号化部530は、メインCPUコア500の制御コマンドの書き込み信号を参照することによって、メインCPUコア500の制御コマンドの送信タイミングを知ることができる。
【0066】
次に、主制御部10から中間部20に対して、又は中間部20を介して演出制御部203に対して送信される制御コマンドの種別について説明する。図5は、本発明の実施の形態に係るパチンコ遊技機1を構成する主制御部10が出力する制御コマンドの種別の一例を示す図であって、図5に示された制御コマンドの種別に限定されるものではない。主制御部10から中間部20や中間部20を介して演出制御部203へ送信される制御コマンドは、1コマンドが2バイトのデータで構成されており、制御コマンドの分類を識別するための1バイトのMODEの情報と、各制御コマンドの詳細な制御内容を示す1バイトのDATAの情報とから構成されている。なお、制御コマンドには一般的なデータ通信で伝送される信号と同様に、BCC(Block Check Character)等が付加されている場合もある。BCCは、データ伝送の過程で発生するデータ誤りなどをチェックするために、伝送ブロックごとに付加される誤り検出符号である。
【0067】
MODEの情報とDATAの情報は鍵コマンド以外の通常の遊技処理に用いられる制御コマンド(以下、通常の制御コマンドという)については、データ記憶部510のデータ記憶回路511に予め記憶されている。鍵コマンドの場合、「MODE」の情報は、通常の制御コマンドと同様である(例えば、図5では「E8H」に割り当てられている)。一方、「DATA」の情報は、暗号化部530を構成する鍵決定部531から、メインCPUコア500への鍵データ出力よりも前に決定された1バイトの鍵データ(例えば、図5では「○×H」)が使用される。なお、鍵データは、鍵決定部531において予め設定されたタイミングで適宜更新される。よって、鍵コマンドを構成する「DATA」の情報の種類は、少なくとも鍵データの更新時に鍵データが取り得る値の分は少なくとも用意されており、鍵データの更新の度に、例えば、「○×H」→「△○H」→「□×H」等のように適宜変更される。
【0068】
「電源投入コマンド」は、パチンコ遊技機1の電源が投入されたことを示すものであり、「MODE」が「E1H」で設定され、「DATA」が「00H」に設定されている。
この電源投入コマンドは、パチンコ遊技機1の電源が投入されたときに中間部20や中間部20を介して演出制御部203へ送信される。具体的には、パチンコ遊技機1の電源が投入されたとき、主制御部10を構成するメインCPUコア500の処理部501は、送信部520を構成するデータ入力部522に対して書き込み信号を出力するとともに、電源投入コマンドをデータ入力部522の記憶領域に書き込む。その後、データ入力部522は、書き込まれた電源投入コマンドを直ちに送信回路521に受け渡す。送信回路521は、受け渡された電源投入コマンドを送信データとして、直ちに中間部20へ送信する。このように、制御コマンドを中間部20や中間部20を介して演出制御部203へ送信するに際して、送信部520を構成するデータ入力部522に書き込み信号を出力するとともに、制御コマンドをデータ入力部522の記憶領域に書き込み、送信回路521へ受け渡して送信データとすることを、以下、単に「制御コマンドをセットする」という。
【0069】
「客待ちデモコマンド」は、パチンコ遊技機1が非遊技状態における客待ちのデモ画面を表示させることを示すものであり、「MODE」が「E2H」で設定され、「DATA」が「00H」に設定されている。
この客待ちデモコマンドは、電源投入時に表示される初期演出表示としてデモが開始されてから、又は後述する未抽選入賞回数がゼロとなりデモが開始されてから、所定時間経過したときに中間部20を介して演出制御部203へ送信される。具体的には、上記デモが開始され所定時間経過後に、客待ちデモコマンドが送信部520にセットされる。その後、直ちに送信部520にセットされている客待ちデモコマンドが中間部20を介して演出制御部203へ送信されることとなる。
【0070】
「図柄変動パターンコマンド」は、パチンコ遊技機1の始動口(第1始動口105又は第2始動口125)に遊技球が入賞し、図柄表示部104にて入賞抽選結果に応じた図柄の変動態様を示すものであり、「MODE」が「E3H」で設定され、各種の変動パターンに合わせてDATAの情報が設定されている。
この図柄変動パターンコマンドは、入賞抽選時の大当たり判定後の各種の図柄変動パターンの決定時に中間部20を介して演出制御部203へ送信される。具体的には、入賞抽選時に取得した大当たり判定用乱数が予め設定された大当たり判定テーブルのいずれかの乱数値と対応するかが判断され、各種の図柄変動パターンが決定されて図柄変動が開始されたときに、決定された図柄変動パターンに対応する図柄変動パターンコマンドが送信部520にセットされる。その後、直ちに送信部520にセットされている図柄変動パターンコマンドが中間部20を介して演出制御部203へ送信されることになる。
【0071】
「図柄停止コマンド」は、図柄変動を停止表示させることを示すものであり、「MODE」が「E4H」で設定され、「DATA」が「00H」に設定されている。
この図柄停止コマンドは、図柄変動が開始され図柄変動時間が経過した後に中間部20を介して演出制御部203へ送信される。具体的には、図柄変動が開始され後、予め設定された図柄変動時間が経過したため図柄変動を停止させるときに、図柄停止コマンドが送信部520にセットされる。その後、直ちに送信部520にセットされている図柄停止コマンドが中間部20を介して演出制御部203へ送信されることになる。
【0072】
「大当たり開始コマンド」は、各種の大当りが開始することを示すものであり、「MODE」が「E5H」で設定され、大当たりの種別に合わせてDATAの情報が設定されている。
この大当たり開始コマンドは、各種の大当りが開始するときに、大当たりの種別に対応する大当たり開始コマンドが中間部20を介して演出制御部203へ送信される。具体的には、大当たり遊技処理の開始のときに、大当たりの種別に対応する大当たり開始コマンドが送信部520にセットされる。その後、直ちに送信部520にセットされている大当たり開始コマンドが中間部20を介して演出制御部203へ送信されることになる。
【0073】
「大当たりコマンド」は、各種大当りの種別に合わせた大当たりのラウンド数を示すものであり、「MODE」が「E6H」で設定され、大当たりのラウンド数に合わせてDATAの情報が設定されている。
この大当たりコマンドは、大当りラウンドが開始されるときに、開始されたラウンド数に対応する大当たりコマンドが中間部20を介して演出制御部203へ送信される。具体的には、第1大入賞口開閉扉109a又は第2大入賞口開閉扉129aを開放させるときに、開放させるときのラウンド数に対応する大当たりコマンドが送信部520にセットされる。その後、直ちに送信部520にセットされている大当たりコマンドが中間部20を介して演出制御部203へ送信されることになる。
【0074】
「大当たり終了コマンド」は、各種の大当りが終了したことを示すものであり、「MODE」が「E7H」で設定され、大当たりの種別に合わせてDATAの情報が設定されている。
この大当たり終了コマンドは、各種の大当りが終了するときに、大当たりの種別に対応する大当たり終了コマンドが中間部20を介して演出制御部203へ送信される。具体的には、大当り遊技終了処理の開始のときに、大当たりの種別に対応する大当たり終了コマンドが送信部520にセットされる。その後、直ちに送信部520にセットされている大当たり終了コマンドが中間部20を介して演出制御部203へ送信されることになる。
【0075】
「鍵コマンド」は、パチンコ遊技機1で認証処理を実行するため認証データを復号化させることを示すものであり、「MODE」が「E8H」で設定され、鍵決定部531で決定された各種の鍵データに合わせてDATAの情報が設定されている。
この鍵コマンドは、パチンコ遊技機1で認証処理を実行するときに中間部20へ送信される。中間部20は、主制御部10から鍵コマンドを受信すると、鍵コマンドを用いて認証データを復号化して認証処理を開始し、得られた認証結果を演出制御部203へ送信する。演出制御部203は、中間部20から送信された認証結果に応じた処理を行う。パチンコ遊技機1で認証処理を実行させるタイミングは基本的に任意に設定することができる。但し、演出制御部203では、認証処理の他に通常の遊技進行に伴って演出処理を実行する必要があるため、演出制御部203における認証処理の処理負荷はできるだけ抑制することが望ましい。よって、例えば、電源投入時や客待ちデモ開始時に、パチンコ遊技機1で認証処理を実行させることが考えられる。
【0076】
例えば、鍵コマンドの送信タイミングを電源投入時と設定した場合、メインCPUコア500は、電源投入コマンドが送信部520にセットされた時から所定時間が経過した後に、鍵決定部531から取得された鍵データを用いて鍵コマンドを構成し、送信部520にセットする。その後、直ちに送信部520にセットされている鍵コマンドが中間部20へ送信されることになる。
また、例えば、鍵コマンドの送信タイミングを客待ちデモ開始時と設定した場合、鍵コマンドは、客待ちデモコマンドが送信部520にセットされた時から所定時間が経過した後に、鍵決定部531から取得された鍵データを用いて構成され、送信部520にセットされる。その後、直ちに送信部520にセットされている鍵コマンドが中間部20へ送信されることになる。以下、本実施の形態では、電源投入時に鍵コマンドを送信することとして説明する。
【0077】
[遊技機の動作処理]
次に、上記構成のパチンコ遊技機1の動作処理について、図面を参照して説明する。以下、主制御部10による中間部20及び演出制御部203への制御コマンドの送信を含む動作処理について、図6に示すフローチャートを参照して説明する。主制御部10の構成部であるメインCPUコア500は、パルス発生部540のクロックパルス発生回路541から出力されるクロック信号に基づいて、所定の周期(例えば4ミリ秒)ごとに制御コマンドの実行等の処理を行う。
【0078】
ステップS1において、まず、主制御部10を構成するメインCPUコア500は、パチンコ遊技機1の電源投入に伴う初期設定処理を実行した後、ステップS2へ進む。なお、パチンコ遊技機1に電源が投入された際には、周辺基板等が主制御基板から受信する制御コマンドを確実に取り込むために、周辺基板等が立ち上がってRAM領域の初期化を行い、待機状態となった後、主制御基板が立ち上がるように構成されている。メインCPUコア500は、初期設定処理として、例えば、スタックポインタに予め決められた所定値を設定するとともに、中間部20や演出制御部203が待機状態になることを待つために、一定時間(例えば、約1秒間)だけ待機する。
【0079】
ステップS2において、メインCPUコア500は、図5に示す電源投入コマンドを送信部520にセットし、中間部20へ送信する。電源投入コマンドをセットした後、メインCPUコア500は、ステップS3へ進む。電源投入コマンドを受信すると、中間部20は、演出制御部203及び演出制御部203を介して図柄表示部104やランプ制御部205のそれぞれに対して電源投入時の演出用の制御コマンド、具体的には、遊技機が非遊技状態における客待ちのデモ画面を表示するための客待ちデモコマンド、あるいは、ランプの点灯等を行うための制御コマンドを送信する。
【0080】
なお、電源投入コマンドは、電源投入後に電源投入に伴う処理を実行させるための制御コマンドを示し、各制御基板が立ち上がった後に、主制御部10から中間部20や中間部20を介して演出制御部203等へ送信される制御コマンドであって、電源投入後の立ち上げ時における遊技を制御するための初期制御情報、例えば、制御モード、バックアップデータ等を送信するための制御コマンド、あるいは初期演出表示の制御を行うための制御コマンド、各種のデモ表示を開始させるための制御コマンドである。また、この電源投入コマンドは遊技機のリセットボタンを押圧したときに実行される、上記制御モード、バックアップデータ等を送信するための制御コマンドも含む。
【0081】
ここで、メインCPUコア500は、鍵コマンドの送信タイミングを電源投入時と設定した場合、ステップS2の後にパルス発生部540からのクロック信号に基づいて割込処理を行う。電源投入コマンドが送信部520にセットされた時から所定時間が経過した後に、鍵決定部531から取得した鍵データを用いて鍵コマンドを構成し、送信部520にセットする。その後、直ちに送信部520にセットされている鍵コマンドが中間部20へ送信され、中間部20にて認証処理が開始される。なお、認証処理の詳細については後述する。
【0082】
ステップS3において、メインCPUコア500は、RAM10cに記憶されている未抽選入賞回数データを参照して、未抽選入賞回数が0回であるか否かを判断する。ここで、未抽選入賞回数とは、第1始動口検出部221又は第2始動口検出部225で検出された遊技球の数(入賞回数)から、当該遊技球の入球に対応する抽選が行われた回数(既抽選回数)を減じた数である。ステップS3の判断結果が「NO」の場合、すなわち、未抽選入賞回数が0回でない場合には、メインCPUコア500は、後述するステップS10へ進む。一方、ステップS3の判断結果が「YES」の場合、すなわち、未抽選入賞回数が0回である場合には、メインCPUコア500は、ステップS4へ進む。
【0083】
ステップS4において、メインCPUコア500は、電源投入時のデモが開始されてから経過した時間を計測した後、ステップS5へ進む。
ステップS5において、メインCPUコア500は、電源投入時のデモが開始されてから所定時間が経過したか否かを判断する。ステップS5の判断結果が「YES」の場合、すなわち、電源投入時のデモが開始されてから所定時間が経過した場合には、メインCPUコア500は、ステップS6へ進む。なお、上記電源投入時のデモを開始するための制御コマンドは、客待ちデモコマンドとしてもよい。
【0084】
ステップS6において、メインCPUコア500は、客待ちデモコマンドを送信部520にセットし、中間部20を介して演出制御部203へ送信した後、ステップS7へ進む。客待ちデモコマンドを受信すると、演出制御部203は、図柄表示部104やランプ制御部205のそれぞれに対して客待ちデモ演出用の制御コマンドを送信する。
【0085】
一方、ステップS5の判断結果が「NO」の場合、すなわち、電源投入時のデモ(又は客待ちデモ)が開始されてから所定時間が経過していない場合には、メインCPUコア500は、ステップS7へ進む。
ステップS7において、メインCPUコア500は、第1始動口検出部221で第1始動口105への遊技球の入球が検出されたか又は第2始動口検出部225で第2始動口120への遊技球の入球が検出されたか否かを判断する。ステップS7の判断結果が「YES」の場合、すなわち、第1始動口検出部221で第1始動口105への遊技球の入球が検出されたか又は第2始動口検出部225で第2始動口120への遊技球の入球が検出された場合には、メインCPUコア500は、ステップS8へ進む。
【0086】
一方、ステップS7の判断結果が「NO」の場合、すなわち、第1始動口検出部221で第1始動口105への遊技球の入球が検出されず、かつ、第2始動口検出部225で第2始動口120への遊技球の入球が検出されない場合には、メインCPUコア500は、ステップS4へ戻り、ステップS4以降の処理を繰り返す。
【0087】
ステップS8において、メインCPUコア500は、客待ちデモ(又は電源投入時のデモ)が開始されてから計測していた時間をクリアした後、ステップS9へ進む。
ステップS9において、メインCPUコア500は、未抽選入賞回数に1を加算する。なお、第1始動口検出部221又は第2始動口検出部225で複数の遊技球の入球が検出された場合、このステップS9では、メインCPUコア500は、未抽選入賞回数に入球に相当する数を加算する。そして、メインCPUコア500は、ステップS10へ進む。
【0088】
ステップS10において、メインCPUコア500は、予め用意された乱数カウンタ(例えば、0〜255をカウント)から1つの大当たり判定用乱数を無作為に取得した後、ステップS11へ進む。
ステップS11において、メインCPUコア500は、未抽選入賞回数から1を減算した後、ステップS12へ進む。
【0089】
ステップS12において、メインCPUコア500は、例えば、予めデータ記憶部510に記憶されている大当り判定データテーブルを参照して、ステップS10の処理で取得した大当たり判定用乱数が、この大当り判定データテーブルに記憶されている大当たりの乱数値であるか否かを判断する。また、ステップS12では、メインCPUコア500は、取得した大当たり判定用乱数がはずれの乱数の場合には、例えば、大当り判定データテーブルを参照して、さらに「リーチ有りのはずれ」又は「リーチ無しのはずれ」であるかについても判断する。ステップS12の判断結果が「YES」の場合、すなわち、ステップS10で取得した大当たり判定用乱数が予め定められた大当たり乱数である場合には、メインCPUコア500は、ステップS13へ進む。
【0090】
ステップS13において、メインCPUコア500は、例えば、大当たりの種別コード(通常当りか確率変動当りか等)、リーチ有り、図柄変動時間、等の「MODE]の情報を含む図柄変動コマンド(大当たりリーチコマンド)を送信部520にセットし、中間部20を介して演出制御部203へ送信した後、ステップS14へ進む。
ステップS14において、メインCPUコア500は、図柄変動時間が経過したか否かを判断する。ステップS14の判断結果が「NO」の場合、すなわち、図柄変動時間が経過していない場合には、メインCPUコア500は、同判断を繰り返す。そして、図柄変動時間が経過すると、ステップS14の判断結果が「YES」となり、メインCPUコア500は、ステップS15へ進む。
【0091】
ステップS15において、メインCPUコア500は、図柄停止コマンドを送信部520にセットし、中間部20を介して演出制御部203へ送信した後、ステップS16へ進む。
ステップS16において、メインCPUコア500は、大当たり開始コマンドを送信部520にセットし、中間部20を介して演出制御部203へ送信した後、ステップS17へ進む。
ステップS17において、メインCPUコア500は、大当たり中の各ラウンドに対応するコマンド(大当たりコマンド)を送信部520にセットし、中間部20を介して演出制御部203へ順次送信し、すべてのラウンドの大当たりコマンドの送信を終了した後、ステップS18へ進む。
ステップS18において、メインCPUコア500は、大当たり終了コマンドを送信部520にセットし、中間部20を介して演出制御部203へ送信した後、ステップS22へ進む。
【0092】
一方、ステップS12の判断結果が「NO」の場合、すなわち、ステップS10の処理で取得した大当たり判定用乱数が予め定められた大当たり乱数でない場合には、メインCPUコア500は、ステップS19へ進む。
ステップS19において、メインCPUコア500は、「リーチ有りのはずれ」の場合には「リーチ有りのはずれ」に対応する図柄変動パターンコマンド(はずれリーチコマンド)を、「リーチ無しのはずれ」の場合には「リーチ無しのはずれ」に対応する図柄変動パターンコマンド(はずれコマンド)を送信部520にセットし、中間部20を介して演出制御部203へ送信した後、ステップS20へ進む。
【0093】
ステップS20において、メインCPUコア500は、図柄変動時間が経過したか否かを判断する。ステップS20の判断結果が「NO」の場合、すなわち、図柄変動時間が経過していない場合には、メインCPUコア500は、同判断を繰り返す。そして、図柄変動時間が経過すると、ステップS20の判断結果が「YES」となり、メインCPUコア500は、ステップS21へ進む。
ステップS21において、メインCPUコア500は、図柄停止コマンドを送信部520にセットし、中間部20を介して演出制御部203へ送信した後、ステップS22へ進む。
【0094】
ステップS22において、メインCPUコア500は、パチンコ遊技機1の電源がオフにされたか否かを判断する。ステップS22の判断結果が「NO」の場合、すなわち、パチンコ遊技機1の電源がオフにされていない場合には、メインCPUコア500は、ステップS3へ戻り、ステップS3以降の処理を繰り返す。
【0095】
一方、ステップS22の判断結果が「YES」の場合、すなわち、パチンコ遊技機1の電源がオフにされた場合には、メインCPUコア500は、ステップS23へ進む。
ステップS23において、メインCPUコア500は、終了処理コマンドを送信部520にセットし、中間部20を介して演出制御部203へ送信した後、本フローチャートによる処理を終了する。
【0096】
以下、主制御部10と中間部20及び演出制御部203との間で行われる認証処理について説明する。
図7は、主制御部10による認証処理の手順の一例を示すフローチャートである。
ステップS101において、主制御部10に電源が投入され初期設定処理を行った後、暗号化部530は、メインCPUコア500からの指示によらず、自身が保持するアルゴリズムに従って今回の認証処理に使用する鍵データを決定する。暗号化部530を構成する鍵決定部531は、例えば、乱数生成手段等によって生成された乱数値を鍵データとして用いることができる。鍵決定部531は、決定した鍵データを自身の鍵データ用記憶領域に書き込むとともに、暗号回路533へ受け渡す。暗号回路533は、受け取った鍵データを自身の鍵データ用記憶領域に書き込む。
【0097】
ステップS102において、暗号化部530は、データ記憶部510に記憶されている検査値を取り込み、検査値に暗号化処理を施し認証データを生成する。具体的には、暗号化部530を構成する暗号回路533は、データ記憶部510を構成するデータ記憶回路511の特定のアドレスに記憶されているデータをデータ入出力部532及び内部バス550を介して読み出す。そして、暗号回路533は、読み出した検査値を自身の検査値用記憶領域に記憶し検査値を取り込む。
【0098】
ステップS103において、暗号化部530は、取り込んだ検査値に対して暗号化処理を施し認証データを生成する。具体的には、暗号回路533は、ステップ101で鍵決定部531から受け取った鍵データを自身の鍵データ用記憶領域から読み出し、検査値に対して読み出した鍵データを予め設定された暗号化方式で演算する。暗号回路533は、この演算結果を認証データとして認証データ用記憶領域に記憶し、認証データの送信タイミングまで保持しておく。
【0099】
ステップS104において、メインCPUコア500は、電源投入後の初期設定処理を実行した後、制御コマンド(電源投入コマンド)を中間部20へ送信するべく、送信部520を構成するデータ入力部522に書き込む。具体的には、メインCPUコア500の処理部501は、データ記憶回路511に記憶されている制御コマンド(電源投入コマンド)を、データ入出力部502及び内部バス550を介して取り込む。そして、処理部501は、取り込んだ制御コマンド(電源投入コマンド)をデータ入力部522に書き込むための書き込み信号を、データ入出力部502を介して内部バス550へ出力する。そして、処理部501は、制御コマンド(電源投入コマンド)をデータ入出力部502及び内部バス550を介してデータ入力部522の記憶領域に書き込んで制御コマンド(電源投入コマンド)をセットする。
【0100】
ステップS105において、送信部520は、データ入力部522に制御コマンド(電源投入コマンド)が書き込まれると、直ちに中間部20へ送信する。具体的には、送信部520を構成するデータ入力部522は、ステップS104で書き込まれた制御コマンド(電源投入コマンド)を送信回路521に受け渡す。送信回路521は、受け渡された制御コマンド(電源投入コマンド)を直ちに中間部20へ送信する。
【0101】
ステップS106において、暗号化部530は、メインCPUコア500が制御コマンド(電源投入コマンド)をデータ入力部522に書き込んでから特定時間経過後に認証データを中間部20へ送信するとして、認証データの送信タイミングを設定する。具体的には、暗号回路533は、メインCPUコア500がステップS104で制御コマンド(電源投入コマンド)をデータ入力部522に書き込む際に出力される書き込み信号を参照する。そして、暗号回路533は、書き込み信号の出力から特定時間(例えば2ミリ秒)経過後のタイミングで、ステップS103で生成した認証データをデータ入出力部522の記憶領域に書き込むように設定する。
【0102】
ステップS107において、暗号化部530は、特定時間経過後、認証データをデータ入力部522に書き込む。
ステップS108において、送信部520は、データ入力部522に認証データに書き込まると直ちに中間部20へ送信する。具体的には、送信部520を構成するデータ入力部522は、ステップS107で書き込まれた認証データを送信回路521に受け渡す。送信回路521は、受け渡された認証データを直ちに中間部20へ送信する。なお、暗号回路533が、制御コマンドの書き込み信号から特定時間経過した後に、認証データをデータ入出力部522に書き込むタイミングについては、後述する。
【0103】
また、メインCPUコア500は、所定の周期(例えば4ミリ秒)ごとに制御コマンドの実行を行う。メインCPUコア500は、制御コマンド(電源投入コマンド)の送信から例えば4ミリ秒経過した後、鍵コマンドの実行を行う。具体的には、以下のステップS109〜S111の処理である。
【0104】
ステップS109において、まず、メインCPUコア500の処理部501は、暗号化部530の鍵決定部531に対して鍵データの読み出し指示を行う。
ステップS110において、鍵決定部531は、処理部501からの鍵データの読み出し指示を受けると、ステップS101で決定した鍵データを鍵データ用記憶領域から読み出し、データ入力出部532及び内部バス550を介してメインCPUコア500のデータ入出力部502へ出力する。データ入出力部502は、出力された鍵データを処理部501に受け渡す。
ステップS111において、処理部501は、受け取った鍵データを用いて鍵コマンドを生成して、直ちにデータ入出力部502及び内部バス550を介してデータ入力部522の記憶領域に書き込んで、鍵コマンドをセットする。
【0105】
ステップS112において、送信部520は、データ入力部522に鍵コマンドが書き込まれると、直ちに中間部20へ送信する。具体的には、送信部520を構成するデータ入力部522は、ステップS111で書き込まれた鍵コマンドを送信回路521に受け渡す。送信回路521は、受け渡された鍵コマンドを直ちに中間部20へ送信する。なお、処理部501は、鍵コマンドをデータ入力部522へ書き込む際に、ステップS104と同様に、書き込み信号を出力する。暗号回路533は、ステップS106と同様に、ステップ111での書き込み信号の出力を基にして、次回の認証処理に用いる認証データの送信タイミングを決定することができる。
【0106】
ステップS113において、暗号化部530は、ステップS101と同様の方法で鍵データを更新する。なお、鍵データの更新のタイミングは、ステップS110の後、すなわち、暗号化部530がステップS109のメインCPUコア500からの鍵データの読み出し指示に応答して、ステップ110で鍵データを出力した後とする。なお、鍵データの更新タイミングについては後述する。
【0107】
次に、図7で説明した電源投入コマンド送信時にパチンコ遊技機1で認証処理を実行させる場合の、主制御部10の鍵コマンド及び認証データの送信タイミングについて、図8を用いて説明する。図8の横軸は時間軸を表す。なお、図8は、電源投入直後のRAM領域の初期化処理や動作安定化のための待機処理等の初期設定処理の説明は省略している。また、主制御部10はクロック信号の立ち上り時に各構成部の動作開始時点が同期されるものとして説明する。
【0108】
図8の(ア)の時点に示すように、主制御部10に電源が投入されると、メインCPUコア500とは独立して暗号化部530にて鍵データが決定され認証データが生成される。なお、(ア)の時点で生成された認証データを認証データ(A)とする。そして、図8の(イ)の時点に示すように、メインCPUコア500にて制御コマンド(電源投入コマンド)が実行される。具体的には、メインCPUコア500にて書き込み信号が送信部520へ出力されるとともに、制御コマンド(電源投入コマンド)が書き込まれる。そして、図8の(ウ)の時点に示すように、送信部520に書き込まれた制御コマンド(電源投入コマンド)は、直ちに中間部20への送信が開始される。
【0109】
ここで、主制御部10のメインCPUコア500では、所定の周期ごとに制御コマンドが実行されるが、図8では、この制御コマンドの実行周期を、模式的にクロック数=16クロックとして説明している。よって、メインCPUコア500の動作は、(イ)の時点で示した制御コマンド(電源投入コマンド)の書き込みが行われた時点からカウントして16クロック目に次の動作が開始される。
【0110】
また、(ウ)の時点に示すように、(イ)の時点での書き込み信号の出力をトリガとして、暗号化部530にて認証データの送信タイミングが設定される。認証データの送信タイミングは、メインCPUコア500にて所定の周期で送信されるそれぞれの制御コマンドの間に割り込んで認証データが送信されるようなタイミングに設定する。また、認証データを送信する時点では、具体的には、暗号化部530が認証データを送信部520に書き込む時点(図8の(オ)の時点)では、送信部520に他の送信データが停滞していない必要がある。すなわち、図8の(オ)の時点に示すように、送信部520における制御コマンドの送信が完了した時点(図8の(エ)の時点)以降に、認証データが送信部520に書き込まれるように、認証データの送信タイミングを設定する必要がある。
【0111】
従って、認証データの送信タイミング、すなわち、暗号化部530が認証データを送信部520に書き込むタイミングは、メインCPUコア500にて制御コマンドが送信部520に書き込まれる際の書き込み信号が出力された以降(図8では、(ウ)の時点以降)であって、メインCPUコア500の次の制御コマンドの実行より前(図8では、(ク)の時点)に認証データの送信が完了(図8では、(キ)の時点)可能なタイミングに設定する。図8では、認証データの送信タイミングは、例えば(ウ)の時点から8クロック目の(オ)の時点とする。そして、図8の(オ)の時点に示すように、(ウ)の時点からカウントして8クロック目に、暗号化部530にて認証データ(A)が送信部520に書き込まれる。その後、図8の(カ)の時点に示すように、送信部520に書き込まれた認証データ(A)は、直ちに中間部20への送信が開始される。
【0112】
認証データの送信タイミングを上記のように設定することで、認証データと他の送信データ(上記では制御コマンド)との送信部520への書き込み時機が重複して、認証データ又は他の送信データが上書きされて送信エラーとなるおそれを低減することができる。このことが、中間部20での認証処理の際に、認証データと鍵データとの不一致によって復号化処理が実行不可となることを防止し、認証処理の確度を向上することができる。また、認証データの送信タイミングを上記のように設定することで、認証データの送信タイミングと制御コマンドの送信タイミングの時間軸上の位置関係が明確化され、認証データの送信は、制御コマンドの送信の直後に必ず行われることとなる。これによって、中間部20では、受信データの種別を解析するに際して、新たな判断処理ステップや特別な解析手段を設けなくとも、認証データと制御コマンドとを容易に識別することができる。また、このことで、ソフトウェア開発上、制御コマンドの送信に関する既存のプログラムコードに対する認証データの送信に関するコードの結合度が低いままで認証データの送信に関する機能を追加することができる。よって、例えば、デバッグ作業時は、既存の制御コマンドの送信に関するものだけ先に作業を行った上で、認証データの送信に関するものは後から作業を行うことができ、より簡単に少ない作業工数で実施することができる。
【0113】
続いて、図8の(ク)の時点に示すように、(イ)の時点からカウントして16クロック目では、鍵コマンドの実行を開始するために、メインCPUコア500にて鍵データの読み出し指示が暗号化部530に対して行われる。そして、図8の(ケ)の時点に示すように、暗号化部530にて鍵データの読み出し指示を受けると、直ちにメインCPUコア500に対して鍵データが出力される。この鍵データは、認証データ(A)を生成した際に用いられた鍵データと同一であるため、鍵データ(A)とする。そして、図8の(コ)の時点に示すように、メインCPUコア500にて鍵データ(A)を受け取ると、直ちに鍵コマンドが実行される。具体的には、メインCPUコア500にて書き込み信号が送信部520へ出力されるとともに、鍵データ(A)から構成された鍵コマンドが書き込まれる。そして、図8の(サ)の時点に示すように、送信部520に書き込まれた鍵データ(A)から構成された鍵コマンドは、直ちに中間部20への送信が開始される。
【0114】
そして、図8の(シ)の時点に示すように、鍵データを更新する。ここでは、鍵データ(A)から鍵データ(B)に変更されたとする。ここで、鍵データの更新タイミングは、暗号化部530が、メインCPUコア500からの鍵データの読み出し指示に応答して、鍵データを出力した後の時点(図8の(コ)の時点)を基準として、規定時間経過後に設定する。仮に、鍵データの更新タイミングを、図8の(コ)の時点より前に設定すると、(カ)の時点で送信した認証データの生成に用いた鍵データと、(サ)の時点で送信した鍵コマンドを構成する鍵データとが一致しなくなるおそれが生じる。そうすると、中間部20では、鍵コマンドを受信して認証処理を開始しても認証データを復号化することができない。よって、鍵データの更新タイミングは、暗号化部530が、メインCPUコア500からの鍵データの読み出し指示に応答して、鍵データを出力した後の時点(図8では(コ)の時点)以降とする。
【0115】
鍵データの更新タイミングを上記のように設定することで、中間部20での認証処理の際に、認証データと鍵データとの不一致によって復号化処理が実行不可となることを防止し、認証処理の確度を向上することができる。
【0116】
その後、図8の(ス)の時点に示すように、暗号化部530にて二回目の認証データの生成が行われる。この認証データは、(シ)の時点で更新された鍵データ(B)を用いて生成されるため、認証データ(B)とする。そして、図8の(セ)の時点に示すように、認証データ(A)の書き込みのときと同様に、(サ)の時点からカウントして8クロック目に、暗号化部530にて認証データ(B)が送信部520に書き込まれる。その後、図8の(ソ)の時点に示すように、送信部520に書き込まれた認証データ(B)は、直ちに中間部20への送信が開始され、図8の(タ)の時点で送信が完了する。
【0117】
続いて、図8の(チ)の時点に示すように、(コ)の時点からカウントして16クロック目では、鍵コマンドの実行を開始するために、メインCPUコア500にて鍵データの読み出し指示が暗号化部530に対して行われる。そして、図8の(ツ)の時点に示すように、暗号化部530にて鍵データの読み出し指示を受けると、直ちにメインCPUコア500に対して鍵データ(B)が出力される。そして、図8の(テ)の時点に示すように、メインCPUコア500にて鍵データ(B)を受け取ると、直ちに鍵コマンドが実行される。具体的には、メインCPUコア500にて書き込み信号が送信部520へ出力されるとともに、鍵データ(B)から構成された鍵コマンドが書き込まれる。そして、図8の(ト)の時点に示すように、送信部520に書き込まれた鍵データ(B)から構成された鍵コマンドは、直ちに中間部20への送信が開始され、図8の(ナ)の時点で送信が完了する。
【0118】
図8では、鍵コマンドを送信する契機となる電源投入コマンドが1回送信されたときに、所定の周期で鍵コマンドが2回送信された時点までを記載しているが、所定の周期で更に鍵コマンドを送信してよいことは言うまでもない。また、図8では、上記の所定の周期としてクロック数による周期を用いた例を示したが、所定時間や制御コマンドの所定送信回数等による周期を用いても構わない。また、鍵コマンドを送信する契機となる制御コマンドも、1種類の制御コマンドに限定する必要はなく、例えば、電源投入コマンドと客待ちデモコマンドの2種類、或いは2種類以上の制御コマンドを契機とするように構成してもよい。また、鍵コマンドを送信する契機となる制御コマンドを、予め設定した取り決めに従って変更するように構成してもよい。また、図8では、鍵コマンドを送信する契機となる制御コマンドが送信される度に認証データを逐次送信しているが、例えば、鍵コマンドを送信する契機となる制御コマンドが2回送信されたら1回だけ認証データ(及び鍵コマンド)を送る等と構成してもよい。
【0119】
また、図8では、認証データの送信タイミングを設定するにあたって、鍵コマンドを送信する契機となる制御コマンドの書き込み信号を基準として、特定時間が経過した後(図8では(ウ)の時点から8クロック目に位置する(オ)の時点に到達後)に、認証データの書き込みが開始されるように、送信タイミングが設定されている。しかしながら、本発明はこれに限定されず、例えば、鍵コマンドを送信する契機となる制御コマンドの書き込み信号を基準として、特定クロック数が経過した後や、制御コマンドの送信回数が特定回数経過した後などとしてもよい。すなわち、認証データの送信タイミングは、鍵コマンドを送信する契機となる制御コマンドの送信から特定時間遅延させて、送信部520への書き込み時機が重複しないようなタイミングであればよい。また、認証データの送信タイミングは、鍵コマンドを送信する契機となる制御コマンドの書き込み信号を基準とするだけではなく、送信フラグが立てられたことを基準とすることもできる。この場合、特定時間経過後に認証データを書き込むことは勿論のこと、送信フラグが立ったのを確認したら直ちに認証データを書き込むこととしてもよい。
【0120】
また、図8では、鍵データの更新タイミングを設定するにあたって、認証データの送信と鍵コマンドの送信とが1回ずつ完了する度に、新たな鍵データで認証データが生成されるように、更新タイミングが設定されている。そして、メインCPUコア500からの鍵データの読み出し指示に応答した暗号化部530の鍵データの出力を基準として、規定時間経過した後(図8では(コ)の時点を基準として(シ)の時点に到達後)に、鍵データの更新タイミングを設定している。しかしながら、本発明はこれに限定されず、例えば、鍵データの読み出し指示に応答した鍵データの出力を基準として、規定クロック数が経過した後や、制御コマンドの送信回数が規定回数経過した後などとしてもよい。
【0121】
以下、中間部20による認証処理を含む動作処理について、図9に示すフローチャートを参照して説明する。中間部20のCPU20aを構成するCPUコア(図示せず)は、中間部20に設けられたクロックパルス発生回路(図示せず)から出力されるクロック信号に基づいて、所定の周期(例えば2ミリ秒)ごとに、制御コマンドに応じた処理等を行う。
【0122】
ステップS201において、中間部20のCPUコアは、まず、パチンコ遊技機1の電源投入後の初期設定処理の後、主制御部10から送信された送信データ(各種制御コマンドやデータ等)を受信したか否かを判断する。具体的には、中間部20のCPUコアは、中間部20を構成するデータ入出力部(図示せず)を介してRAM20cの受信データ用記憶領域に、主制御部10からの送信データが書き込まれているか否かを判断する。主制御部10からの送信データが受信データ用記憶領域に書き込まれていない場合は、中間部20のCPUコアは、本フローチャートによる処理を終了する。
【0123】
一方、主制御部10からの送信データが受信データ用記憶領域に書き込まれた場合(ステップS201:YES)、中間部20のCPUコアは、コマンド解析処理を行う。具体的には下記のとおりである。
ステップS202において、中間部20のCPUコアは、受信データ用記憶領域に書き込まれたデータが、鍵コマンドか否かを判断する。そして、中間部20のCPUコアは、受信データ用記憶領域に書き込まれたデータが、鍵コマンドである場合(ステップS202:YES)は、認証処理を開始し、受信データ用記憶領域に書き込まれたデータが、鍵コマンドでない場合(ステップS202:NO)は、さらに受信データの内容を解析する。具体的には、受信データ用記憶領域に書き込まれたデータが認証データである場合には、RAM20cの認証データ用記憶領域に記憶させておく。一方、受信データ用記憶領域に書き込まれたデータが認証データ以外のデータである場合には、ステップS203へ進む。
【0124】
ステップS203において、中間部20のCPUコアは、受信データ用記憶領域に書き込まれたデータ(鍵コマンド及び認証データ以外のデータ)を演出制御部203へそのまま送信させる。具体的には、中間部20のCPUコアは、受信データ用記憶領域に書き込まれたデータを、そのままRAM20cの送信データ用記憶領域に書き込む。
ステップS204において、中間部20のCPUコアは、送信データ用記憶領域に書き込まれたデータを、送信データとして直ちに演出制御部203へ送信させ、本フローチャートによる処理を終了する。
【0125】
ステップS205において、中間部20のCPUコアは、受信データ用記憶領域に書き込まれたデータが、鍵コマンドである場合(ステップS202:YES)、受信データ用記憶領域の鍵コマンドをRAM20cの鍵データ用記憶領域に記憶させる。
ステップS206において、中間部20のCPUコアは、認証データ用記憶領域に予め受信した認証データが記憶されているか否かを確認する。認証データ用記憶領域に認証データが記憶されていない場合は(ステップS206:NO)、中間部20のCPUコアは、未だ、認証処理が行える段階ではないとして、本フローチャートによる処理を終了する。
【0126】
ステップS207において、中間部のCPUコアは、認証データ用記憶領域に認証データが記憶されている場合(ステップS206:YES)、鍵データ用記憶領域及び認証データ用記憶領域から鍵データ及び認証データを読み出す。なお、鍵データ用記憶領域及び認証データ用記憶領域から鍵データ及び認証データを読み出す際には、両記憶領域に書き込まれた順番と両記憶領域から読み出す順番とが一致するように取り決めておく(いわゆる、先入れ先出し。以下、先入れ先出しのルールという)と、認証データの生成に用いた鍵データと鍵コマンドを構成する鍵データとが、より確実に一致する。よって、鍵データと認証データの不一致によって復号化処理が実行不可となることを防止し、認証処理の確度を向上することができる。
【0127】
ステップS208において、中間部20のCPUコアは、読み出した鍵データと認証データとを用いて検査値を抽出する。具体的には、中間部20のCPUコアは、認証データに対して鍵データを予め設定された復号化方式で演算する。中間部20のCPUコアは、この演算結果が検査値に相当すると認識し、RAM20cの検査値用記憶領域に記憶しておく。
ステップS209において、中間部20のCPUコアは、中間部20を構成するROM20bの所定の記憶領域に予め記憶された期待値を読み出す。
【0128】
ステップS210において、中間部20のCPUコアは、検査値用記憶領域から抽出した検査値を読み出し、検査値と期待値とが一致するか否かを判断する。検査値と期待値とが一致する場合(ステップS210:YES)、中間部20のCPUコアは、今回の認証処理において主制御部10に対する個体認証が成功し、パチンコ遊技機1の正規性を認証することができたと判断し、ステップS211へ進む。一方、検査値と期待値とが一致しない場合(ステップS210:NO)、中間部20のCPUコアは、今回の認証処理において主制御部10に対する個体認証は不成功であり、パチンコ遊技機1で不正行為や誤動作が発生したおそれがあると判断し、ステップ212へ進む。
【0129】
ステップS211において、中間部20のCPUコアは、成功を示す認証結果データを生成し、ステップS213へ進む。
ステップS212において、中間部20のCPUコアは、不成功を示す認証結果データを生成し、ステップS213へ進む。
【0130】
ステップS213において、中間部20のCPUコアは、得られた認証結果データを演出制御部203へ送信させる。具体的には、中間部20のCPUコアは、ステップS211又はステップS212で生成した成功又は不成功を示す認証結果データを、送信データ用記憶領域に書き込む。
ステップS214において、中間部20のCPUコアは、送信データ用記憶領域に書き込まれたデータを、送信データとして直ちに演出制御部203へ送信させ、本フローチャートによる処理を終了する。
【0131】
以下、演出制御部203が実行する制御処理について、図10〜図13に示すフローチャートを参照して説明する。
図10は、演出制御部203によるメイン処理の手順の一例を示すフローチャートである。
ステップS1000において、演出制御部203のCPU203aを構成するサブCPUコア(図示せず)は、初期設定処理を行う。この処理において、サブCPUコアは、電源投入に応じて、演出制御部203のROM203bからメイン処理に関するプログラムコードを読み込む。これとともに、サブCPUコアは、演出制御部203のRAM203cに記憶されるフラグなどを初期化し、所定値に設定する処理を行う。この処理が終了した場合には、ステップS1300に処理を移す。
【0132】
ステップS1100において、サブCPUコアは、演出用乱数更新処理を行う。この処理において、サブCPUコアは、RAM203cに記憶される演出用乱数値を更新する処理を行う。以降は、所定の割込処理が行われるまで、上記ステップS1100の処理を繰り返し行う。
【0133】
図11は、演出制御部203による割込処理の手順の一例を示すフローチャートである。サブCPUコアは、演出制御部203に設けられたクロックパルス発生回路(図示せず)から出力されるクロック信号に基づいて、所定の周期(例えば2ミリ秒)ごとに、演出制御部203のタイマ割込処理を実行する。
【0134】
ステップS1300において、サブCPUコアは、CPU203aのレジスタに格納されている情報をスタック領域に退避させる。
ステップS1400において、サブCPUコアは、演出制御部203で用いられる各種タイマカウンタの更新処理を行う。
【0135】
ステップS1500において、サブCPUコアは、コマンド解析処理を行う。この処理において、サブCPUコアは、RAM203cの受信データ用記憶領域に書き込まれた制御コマンドを解析する処理を行う。演出制御部203では、主制御部10から中間部20を介して送信された制御コマンドを受信すると、制御コマンドの受信割込処理が発生し、サブCPUコアは、受信した制御コマンドを受信データ用記憶領域に記憶する。その後、本ステップS1500において受信した制御コマンドの解析処理が行われる。なお、コマンド解析処理の詳細については後述する。
【0136】
ステップS1600において、サブCPUコアは、認証結果データ解析処理を行う。この処理において、サブCPUコアは、RAM203cの受信データ用記憶領域に書き込まれた各種データが認証結果データであるとき、当該認証結果データの内容を解析する処理を行う。演出制御部203では、中間部20から送信された各種の送信データのうち、認証結果データが送信された場合に、認証結果データの受信割込処理が発生し、サブCPUコアは、受信した認証結果データを受信データ用記憶領域に記憶する。その後、本ステップS1600において受信した認証結果データの内容を解析し、認証結果が示す内容に応じた処理を実行する。なお、認証結果データ解析処理の詳細については後述する。
【0137】
ステップS1700において、サブCPUコアは、演出ボタン検出部220の信号のチェックを行い、演出ボタン検出部220に関する演出入力制御処理を行う。
ステップS1800において、サブCPUコアは、RAM203cの送信データ用記憶領域に書き込まれた制御コマンドや各種データを図柄表示部104やランプ制御部205へ送信するデータ送信処理を行う。
ステップS1900において、サブCPUコアは、ステップS1300で退避した情報をCPU203aのレジスタに復帰させる。
【0138】
図12は、演出制御部203によるコマンド解析処理の手順の一例を示すフローチャートである。
ステップS1501において、サブCPUコアは、受信データ用記憶領域に制御コマンドが書き込まれているか否かを確認して、制御コマンドを受信したか否かを確認する。サブCPUコアは、受信データ用記憶領域に制御コマンドが書き込まれていなければコマンド解析処理を終了し、受信データ用記憶領域に制御コマンドが書き込まれていればステップS1510へ進む。
【0139】
ステップS1510において、サブCPUコアは、受信データ用記憶領域に書き込まれている制御コマンドが、客待ちデモコマンド(図6のステップS6参照)であればステップS1511へ進み、客待ちデモコマンドでなければステップS1520へ進む。
ステップS1511において、サブCPUコアは、客待ちデモ用の演出パターンを決定するデモ演出処理を行う。具体的には、客待ちデモ用の演出パターンを決定し、決定したデモ演出パターンに基づく演出処理コマンドをRAM203cの送信データ用記憶領域に書き込んで送信データとし、図柄表示部140やランプ制御部205へ送信させる。
【0140】
ステップS1520において、サブCPUコアは、受信データ用記憶領域に書き込まれている制御コマンドが、大当たり用又ははずれ用の図柄変動パターンコマンド(図6のステップS13又はステップS19参照)であればステップS1521へ進み、図柄変動パターンコマンドでなければステップS1530へ進む。
ステップS1521において、サブCPUコアは、大当たり用又ははずれ用のそれぞれについて用意された各種変動演出パターンの中から、1つ変動演出パターンを決定する図柄変動演出処理を行う。具体的には、サブCPUコアは、図10のステップS1100において更新されている演出用乱数値から1つの乱数値を取得し、取得した演出用乱数値とROM203bに予め保持する変動演出パターン決定テーブルとに基づいて、1つの変動演出パターンを決定する。そして、サブCPUコアは、決定した変動演出パターンに基づく演出処理コマンドを送信データ用記憶領域に書き込んで送信データとし、図柄表示部140やランプ制御部205へ送信させる。
【0141】
ステップS1530において、サブCPUコアは、受信データ用記憶領域に書き込まれている制御コマンドが、図柄停止コマンド(図6のステップS15又はステップS21参照)であればステップS1531へ進み、図柄停止コマンドでなければステップS1540へ進む。
ステップS1531において、サブCPUコアは、変動態様を示す演出図柄を停止表示させるための図柄停止演出処理を行う。具体的には、サブCPUコアは、図柄停止コマンドに基づく演出処理コマンドを送信データ用記憶領域に書き込んで送信データとし、図柄表示部140やランプ制御部205へ送信させる。
【0142】
ステップS1540において、サブCPUコアは、受信データ用記憶領域に書き込まれている制御コマンドが、大当たり開始コマンド(図6のステップS16参照)であればステップS1541へ進み、大当たり開始コマンドでなければステップS1550へ進む。
ステップS1541おいて、サブCPUコアは、大当たり開始演出パターンを決定する大当たり開始演出処理を行う。具体的には、サブCPUコアは、大当たり開始コマンドに基づいて大当たり開始演出パターンを決定し、決定した大当たり開始演出パターンに基づく演出処理コマンドを送信データ用記憶領域に書き込んで送信データとし、図柄表示部140やランプ制御部205へ送信させる。
【0143】
ステップS1550において、サブCPUコアは、受信データ用記憶領域に書き込まれている制御コマンドが、大当たりコマンド(図6のステップS17参照)であればステップS1551へ進み、大当たりコマンドでなければステップS1560へ進む。
ステップS1551おいて、サブCPUコアは、ラウンド別の大当たりコマンドに対応する大当たり演出処理を行う。具体的には、サブCPUコアは、各大当たりラウンドのそれぞれに対応した大当たりコマンドに基づく演出処理コマンドを送信データ用記憶領域に書き込んで送信データとし、図柄表示部140やランプ制御部205へ送信させる。
【0144】
ステップS1560において、サブCPUコアは、受信データ用記憶領域に書き込まれている制御コマンドが、大当たり終了コマンド(図6のステップS18参照)であればステップS1561へ進み、大当たり終了コマンドでなければ本フローチャートによる処理を終了する。
ステップS1561において、サブCPUコアは、大当たり終了演出パターンを決定する大当たり終了演出処理を行う。具体的には、サブCPUコアは、大当たり終了コマンドに基づいて大当たり終了演出パターンを決定し、決定した大当たり終了演出パターンに基づく演出処理コマンドを送信データ用記憶領域に書き込んで送信データとし、図柄表示部140やランプ制御部205へ送信させ、本フローチャートによる処理を終了する。
【0145】
図13は、演出制御部203による認証結果データ解析処理の手順の一例を示すフローチャートである。
ステップS1601において、サブCPUコアは、受信データ用記憶領域に認証結果データが書き込まれているか否かを確認して、認証結果データを受信したか否かを確認する。サブCPUコアは、受信データ用記憶領域に認証結果データが書き込まれていなければ認証結果データ解析処理を終了し、受信データ用記憶領域に認証結果データが書き込まれていればステップS1610へ進む。
【0146】
ステップ1610において、サブCPUコアは、受信データ用記憶領域に書き込まれた認証結果データが、認証成功を示す結果であるか否かを確認する。認証結果データが認証成功を示す結果である場合(ステップS1610:YES)、サブCPUコアは、今回の中間部20での認証処理において主制御部10に対する個体認証が成功し、パチンコ遊技機1の正規性を認証することができたと判断して、本フローチャートによる処理を終了する。一方、認証結果データが認証不成功を示す結果である場合(ステップS1610:NO)、サブCPUコアは、今回の中間部20での認証処理において主制御部10に対する個体認証は不成功であり、パチンコ遊技機1で不正行為や誤動作が発生したおそれがあると判断し、ステップS1620へ進む。
【0147】
ステップ1620において、パチンコ遊技機1で不正行為や誤動作が発生したおそれがあると判断された場合(ステップS1610:NO)、サブCPUコアは、その旨を報知する為に報知信号を出力し、本フローチャートによる処理を終了する。
【0148】
サブCPUコアは、生成した報知信号を、例えば、図柄表示部104やランプ制御部205、あるいはパチンコ遊技機1を管理するセンター制御装置などへ送信する。図柄表示部104やランプ制御部205などは、受信した報知信号に基づいて、パチンコ遊技機1で不正行為や誤動作が発生したおそれがある旨を報知する演出を実行する。この演出は、例えば、図柄表示部104に通常出現しないキャラクターを出現させたり、通常出現するキャラクターを通常とは異なる方法で出現させるなどである。また、図柄表示部104の輝度を変えたり、色を変えたり、ランプ制御部205に対して所定のランプを表示制御するようにしてもよい。いずれにせよ、遊技店の従業員が当該パチンコ遊技機1の前を通過した際に、その状態に気付くようにしてあればよい。また、この演出は、顧客がその状態に気付かないような演出でもよく、また、顧客が容易に気付く演出であってもよい。顧客が容易に気付く演出にすれば、不正行為を効率的に抑止することができる。
【0149】
また、報知信号に「大当たり中」や「確率変動中」などのパチンコ遊技機1の遊技状態に関する情報を含めてもよい。これらの遊技状態に関する情報に基づいて、パチンコ遊技機1を管理するセンター制御装置などによって不正行為が行われているか否かの判断を行ってもよい。例えば、大当たり中や確率変動中は入賞が集中していても正常である場合がある。よって、大当たり中や確率変動中は、その他の状態とは異なる条件で不正行為のおそれがあるか否かについて判断するのがよい。また、遊技状態に関する情報は、報知信号に含めずに別信号として出力するようにしてもよい。この場合、従業員は、報知信号と遊技状態に関する情報の両方に基づいて、不正行為のおそれがあるか否かについて判断する。
【0150】
なお、主制御部10と賞球制御部204との間に中間部20を設けた場合の認証処理は、主制御部10と演出制御部203との間に中間部20を設けた場合の認証処理とほぼ同様の手順で行われるため説明を省略する。
【0151】
以上のように、本実施の形態では、暗号化制御回路10g(ハードウェア)で構成される暗号化部530が、主制御部10の個体認証に必要な認証データを、プログラムコードに記述されたメインCPUコア500からの指示によらず、独自に保持するアルゴリズムに従って生成し、中間部20へ自動的に送信している。また、認証データの復号化に必要な鍵データは、メインCPUコア500からの読み出し指示のみで暗号化制御回路10gから出力され、直ちに中間部20へ送信される。従って、主制御部10に対する認証機能を有しながらも、認証機能を有することで増大する主制御部10のCPUの処理負荷やプログラム容量を最大限抑制することができ、パチンコ遊技機1のセキュリティ強度の向上と処理速度の向上とを両立させることができる。
【0152】
また、本実施の形態では、認証データの生成や送信に関する処理の制御は、暗号化部530自身のアルゴリズムで定義すればよい。また、鍵コマンドの実行に関する処理の制御も、メインCPUコア500が実行するプログラムコードに1種類の制御コマンド(鍵コマンド)に対応するコードを追加するだけよい。具体的には、鍵データの読み出し指示に関するコード及び鍵コマンドの書き込みに関するコードを追加するだけでよく、コードステップ数換算でそれぞれ僅か1命令分だけの追加で足りる。従って、認証データ及び鍵コマンドの送信タイミングの設定や鍵データの更新タイミング等は、特定時間経過後や特定クロック数経過後など自由なタイミング設計が可能であり、ソフトウェア制御の拡張性や柔軟性も備えた認証機能を提供することができる。これに加えて、メインCPUコア500が実行するプログラムコード全体にわたっての新たなタイミング設計を行う必要がないので、認証機能を追加するだけのタイミング設計で済み、機能の実装、機能の検証などを、より簡単に少ない作業工数で実施することができる。また、このことで認証機能を追加する際の設計自由度を高くすることができる。
【0153】
また、本実施の形態では、認証データの復号化処理や検査値と期待値との照合処理といった認証処理の大部分は中間部20が実行する。よって、演出制御部203で認証処理が実行されるのは、中間部20から認証結果データを受信した場合のみである。すなわち、認証処理を行うことによって演出制御部203のCPUの処理負荷が増大するのは、認証結果データを受信したときのみであるため、演出制御部203の処理負荷が増大する割合を抑えることができる。また、演出制御部203が実行するプログラムコードには認証結果データ解析処理に関するプログラムコードを追加するだけでよい。従って、演出制御部203が実行するプログラムコード全体にわたっての新たなタイミング設計を行う必要がないので、認証結果データの解析機能を追加するだけのタイミング設計で済み、機能の実装、機能の検証などを、より簡単に少ない作業工数で実施することができる。また、このことで認証処理に関する機能を追加する際の設計自由度を高くすることができる。
【0154】
また、本実施の形態では、鍵コマンドの送信タイミングを、電源投入コマンドを基準に設定し、パチンコ遊技機1の認証処理を電源投入時に開始している。この場合、電源投入コマンドは、パチンコ遊技機1の電源の投入時やリセット時など、パチンコ遊技機1の初期化処理を行う際(初期設定処理の後)に送信される。パチンコ遊技機1の初期化処理は、パチンコ遊技機1のメインの処理である遊技(ゲーム進行)関連処理とは異なる処理区分に分類される。したがって、本発明のように、パチンコ遊技機1の初期化処理中に認証処理を組み込めば、遊技関連処理中に認証処理を組み込む場合と比較して、プログラム設計やテストにかかる工程(工数)が増加する割合を低減することができる。すなわち、パチンコ遊技機1の初期化処理中に認証処理を組み込むことによって、開発コストの低減や品質管理上のメリットを得ることができる。また、パチンコ遊技機1の初期化処理中に認証処理を組み込めば、パチンコ遊技機1の起動直後に認証処理を行うため、遊技店が閉店した後に不正が行われた場合などであっても、顧客が入店する前に不正を検出することができる。よって、不正による被害が発生する危険性を低減することができる。
【0155】
また、鍵コマンドの送信タイミングを、客待ちデモコマンドを基準に設定し、パチンコ遊技機1の認証処理を客待ちデモ時に開始した場合、客待ちデモコマンドは、パチンコ遊技機1が非遊技状態、すなわち、パチンコ遊技機1のメインの処理である遊技(ゲーム進行)関連処理が行われていない場合に送信されるので、認証処理による処理負荷の増大が遊技関連処理に影響を与えることがない。このため、主制御部10や周辺部30が高度な処理能力を有していない場合や、遊技関連処理の処理負荷が大きいパチンコ遊技機1であっても、認証処理機能を追加することができる。また、客待ちデモコマンドは、顧客がパチンコ遊技機1を操作する前に発行されるコマンドであるので、顧客がパチンコ遊技機1を操作する前に不正行為を検出することができる。
【0156】
また、本実施の形態では、中間部20での認証処理の際に、鍵コマンド及び認証データを構成する鍵データの種類が不一致とならないように、認証データの送信と鍵コマンドの送信とが1回ずつ完了する度に、新たな鍵データで認証データが生成されるように、鍵データの更新タイミングが設定されている。しかしながら、本発明はこれに限定されず、1回の鍵コマンドの送信が完了する間に複数回の認証データの送信が行われた後に、鍵データの更新を行うように構成してもよい。この場合、鍵データの更新が行われる前の認証データの送信回数は、中間部20の認証データ記憶領域にて保持可能な認証データ数以下に抑えておけばよい。このとき、中間部20では、復号化処理時の先入れ先出しのルールを守れば、本実施の形態のように、鍵コマンド受信時の直前に受信した認証データに対して復号化処理を施すことに限定されず、例えば、鍵コマンド受信時より所定回数前に受信した認証データに対して復号化処理を施すことができる。また、当該所定回数を示す情報や鍵データの更新状況を示した情報を鍵データとともに都度送信するように構成することもできる。
【0157】
また、本実施の形態では、主制御部10において、認証データを先に送信した後に鍵コマンドを送信することとしたが、本発明はこれに限定されず、鍵コマンドを先に送信した後に認証データを送信することとしてもよい。このとき、中間部20にて、鍵コマンド受信時に復号化処理の対象となる認証データは、当該鍵コマンド受信時の直後に受信した認証データとなるが、復号化処理時は先入れ先出しではなく、後入れ先出しのルールを取り決めておけばよい。また、中間部20での認証処理のトリガを、鍵コマンドの受信ではなく認証データの受信とするように構成することもできる。
【0158】
また、本実施の形態では、主制御部10を構成する送信部520にて、各構成部から受け取ったデータを直ちに中間部20へ送信することとしているが、本発明はこれに限定されず、受け取ったデータを送信部520にて一時的に保存し、送信部520でも中間部20への送信タイミングを計ることができるような構成としてもよい。このことは、中間部20から演出制御部203への制御コマンドや認証結果データの送信についても同様であり、RAM20cの送信データ用記憶領域に書き込まれたデータを、送信データとして演出制御部203へ送信する際に、中間部20を構成する送信部(図示せず)にて送信データを一時的に保存し、送信部で演出制御部203への送信タイミングを計ることができるような構成としてもよい。
【0159】
また、本実施の形態では、主制御部10では、検査値を暗号化して認証データを生成し、中間部20へ送信し、中間部20では、認証データに復号化して検査値を抽出し認証処理を行っている。そして、中間部20は、得られた認証結果に対して特に暗号化処理を施さずに、認証結果データとして演出制御部203へ送信している。しかしながら、本発明は、これに限定されない。例えば、認証データは、検査値に暗号化処理を施さずに検査値そのものを認証データとして中間部20へ送信してもよい。また、認証結果データは、得られた認証結果に対して暗号化処理を施したものを認証結果データとして演出制御部203へ送信してもよい。なお、認証データ及び認証結果データの双方とも暗号化処理が施されたものを用いる場合、中間部20は、受信した認証データの復号化処理に用いた鍵データと、生成する認証結果データの暗号化処理に用いる鍵データとは同じものを使用すればよい。すなわち、中間部20は、主制御部10から送信された鍵コマンドを構成する鍵データを用いて認証データを復号化した後、得られた認証結果に対して当該鍵データで暗号化処理を施して認証結果データを生成すればよい。
【0160】
また、このような場合、本実施の形態では、主制御部10と演出制御部203との間に中間部20を設けているので、主制御部10を構成するCPU10aと演出制御部203を構成するCPU203aとの間の処理能力の差異や、主制御部10を構成するROM10bやRAM10cと演出制御部203を構成するROM203bやRAM203cとの間の記憶容量の差異を、中間部20において吸収することができる。これにより、主制御部10と演出制御部203との間で処理能力や記憶容量に差異がある場合でも、主制御部10と演出制御部203との間のセキュリティ強度を維持することができる。
【0161】
すなわち、例えば、主制御部10を構成するCPU10aの処理能力や主制御部10を構成するROM10bやRAM10cの記憶容量が、演出制御部203を構成するCPU203aの処理能力や演出制御部203を構成するROM203bやRAM203cの記憶容量と比較して余裕がある場合、主制御部10は、検査値に対して複雑な暗号化処理を施して認証データを生成し中間部20へ送信する。中間部20は、受信した認証データを用いて認証処理を行い、得られた認証結果に対して比較的簡易な暗号化処理を施して(又は認証結果そのもので)認証結果データを生成し演出制御部203へ送信する。演出制御部203は、受信した認証結果データに対して比較的簡易な復号化処理を施して(又は認証結果データそのもので)認証処理を行うことができる。このように構成することにより、演出制御部203において複雑な復号化方式を採用しなくても、パチンコ遊技機1として高度のセキュリティ強度を維持することができる。
【0162】
また、例えば、演出制御部203を構成するCPU203aの処理能力や演出制御部203を構成するROM203bやRAM203bの記憶容量が、主制御部10を構成するCPU10aの処理能力や主制御部10を構成するROM10bやRAM10cの記憶容量と比較して余裕がある場合、主制御部10は、検査値に対して比較的簡易な暗号化処理を施して(又は検査値そのもので)認証データを生成し中間部20へ送信する。中間部20は、受信した認証データを用いて認証処理を行い、得られた認証結果に対して複雑な暗号化処理を施して認証結果データを生成し演出制御部203へ送信する。演出制御部203は、受信した認証結果データに対して複雑な復号化処理を施して認証処理を行うこととなる。このように構成することにより、主制御部10において複雑な暗号化方式を採用しなくても、パチンコ遊技機1として高度のセキュリティ強度を維持することができる。
【0163】
また、本実施の形態に係るパチンコ遊技機1では、中間部20をCPU、ROM、RAM等を備えて構成しているが、同様の機能をLSI等の集積回路として実現するように構成してもよい。
また、本実施の形態では、本発明をパチンコ遊技機に適用する例を示したが、これに限定されず、本発明は、雀球遊技機、アレンジボール等のパチンコ遊技機以外の弾球遊技機、スロットマシン等の回胴式遊技機などの他の遊技機にも適用することができる。これらの遊技機においても、本実施の形態と同様に構成することにより、本実施の形態と同様の効果を得ることができる。また、本実施の形態は、その目的及び構成等に特に矛盾や問題がない限り、互いの技術を流用することができる。
【符号の説明】
【0164】
1 パチンコ遊技機
10 主制御部
10a,20a,203a,204a CPU
10b,20b,203b,204b ROM
10c,20c,203c,204c RAM
10m ワンチップマイコン
10g 暗号化制御回路
20 中間部
203 演出制御部
203d VRAM
204 賞球制御部
500 CPUコア
501 処理部
502 データ入出力部
510 データ記憶部
511 データ記憶回路
520 送信部
521 送信回路
522 データ入力部
530 暗号化部
531 鍵決定部
532 データ入出力部
533 暗号回路
540 パルス発生部
541 パルス発生回路
550 内部バス


【特許請求の範囲】
【請求項1】
主制御手段と、前記主制御手段が出力する所定の情報に応じて処理を行う副制御手段と、前記主制御手段と前記副制御手段との間に設けられた中間制御手段とを備えた遊技機であって、
前記主制御手段は、
所定の遊技情報が記憶されている情報記憶部と、
前記情報記憶部に記憶されている遊技情報に従って所定の演算を行う演算処理部と、
所定の情報を前記中間制御手段へ送信する情報送信部と、
前記情報記憶部に記憶されている特定の情報を読み込んで、前記情報記憶部に記憶されている情報の正当性を認証するための認証情報を生成する認証情報生成部と、
前記認証情報生成部が生成した認証情報を記憶する認証情報記憶部と、
前記認証情報記憶部に記憶されている認証情報を前記情報送信部に送信させる認証情報送信指示部とを備え、
前記演算処理部は、所定の演算結果の情報を前記情報送信部に送信させるための送信指示命令を前記情報送信部へ出力し、
前記情報送信部は、前記送信指示命令が入力されると、前記所定の演算結果の情報を受け取り、受け取った前記所定の演算結果の情報を前記中間制御手段へ送信し、
前記認証情報送信指示部は、前記演算処理部から前記情報送信部へ出力された前記送信指示命令を入力し、該送信指示命令を入力すると所定時間遅延して、前記認証情報記憶部に記憶されている認証情報を前記情報送信部に送信させ、
前記中間制御手段は、前記情報送信部にて送信された認証情報を受信し、受信した認証情報に基づいて、前記情報記憶部に記憶されている情報を認証することにより、前記主制御手段の正当性を認証する
ことを特徴とする遊技機。
【請求項2】
前記認証情報送信指示部は、前記情報送信部によって演算結果の情報の送信が完了した後に、前記認証情報記憶部に記憶されている認証情報を前記情報送信部に送信させることを特徴とする請求項1に記載の遊技機。
【請求項3】
前記認証情報生成部は、
所定の暗号鍵情報を決定する暗号鍵決定部と、
前記情報記憶部に記憶されている特定の情報を読み込み、前記暗号鍵決定手段によって決定された暗号鍵情報に基づいて、読み込んだ前記特定の情報を暗号化して認証情報を生成する暗号生成部とを備える
ことを特徴とする請求項1又2に記載の遊技機。
【請求項4】
前記演算処理部は、前記情報送信部に前記暗号鍵決定部によって決定された暗号鍵情報を送信させる送信指示命令を出力することを特徴とする請求項3に記載の遊技機。
【請求項5】
前記暗号鍵決定部は、所定の更新条件が成立すると、新たに暗号鍵情報を決定することを特徴とする請求項2乃至4のいずれかに記載の遊技機。
【請求項6】
主制御手段と、前記主制御手段が出力する所定の情報に応じて処理を行う副制御手段と、前記主制御手段と前記副制御手段との間に設けられた中間制御手段とを備えた遊技機の認証方法であって、
認証情報生成部が、所定の遊技情報が記憶されている情報記憶部に記憶されている特定の情報を読み込んで、前記情報記憶部に記憶されている情報の認証を行うための認証情報を生成する第1のステップと、
認証情報記憶部が、前記第1のステップで生成された前記認証情報を記憶する第2のステップと、
前記情報記憶部に記憶されている遊技情報に従って所定の演算を行う演算処理部が、前記所定の演算結果の情報を送信させるための送信指示命令を、所定の情報を前記中間制御手段へ送信する情報送信部へ出力する第3のステップと、
前記情報送信部が、前記送信指示命令が入力されると、前記所定の演算結果の情報を受け取り、受け取った前記所定の演算結果の情報を前記中間制御手段へ送信する第4のステップと、
認証情報送信指示部が、前記演算処理部から前記情報送信部へ出力された前記送信指示命令を入力し、該送信指示命令を入力すると所定時間遅延して、前記認証情報記憶部に記憶されている認証情報を前記情報送信部に送信させる第5のステップと、
前記中間制御手段が、前記第5のステップで送信された前記認証情報を受信し、受信した認証情報に基づいて、前記情報記憶部に記憶されている情報を認証することにより、前記主制御手段の正当性を認証する第6のステップとを有する
ことを特徴とする遊技機の認証方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate