以下、本発明を実施するための形態について、図面を参照しながら説明する。具体的には、本発明の実施形態に係る遊技機の1つであるパチンコ遊技機1(以下、「遊技機1」という)について説明する。
〈第1の実施形態〉
[遊技機の構成]
以下に、本発明の一実施形態である第1の実施形態に係る遊技機1の構成について説明する。
図1は、本実施形態に係る遊技機1の外観構成を示す正面図である。図2は、本実施形態に係る遊技機1のガラス枠を開放させた状態の外観構成を示す斜視図である。図3は、本実施形態に係る遊技機1の裏面側の外観構成を示す斜視図である。
遊技機1は、遊技店の島設備に取り付けられる外枠60と、その外枠60と回動可能に支持されたガラス枠50とが備えられている(図1、図2参照)。また、外枠60には、遊技球200が流下する遊技領域6が形成された遊技盤2が設けられている。ガラス枠50には、回動操作されることにより遊技領域6に向けて遊技球を発射させる操作ハンドル3と、スピーカからなる音声出力装置32と、複数のランプを有する演出用照明装置34と、押圧操作により演出態様を変更させるための演出ボタン35とが設けられている。
さらに、ガラス枠50には、複数の遊技球200を貯留する受け皿40が設けられており、この受け皿40は、操作ハンドル3の方向側に遊技球200が流下するように下りの傾斜を有している(図2参照)。この受け皿40の下りの傾斜の端部には、遊技球を受け入れる図示しない受入口が設けられており、この受入口に受け入れられた遊技球は、玉送りソレノイド4bが駆動することにより、ガラス枠50の裏面に設けられた玉送り開口部41へ1個ずつ送り出される。そして、玉送り開口部41へ送り出された遊技球は、打出部材4cの方向に向けて下り傾斜を有している発射レール42により、発射レール42の下り傾斜の端部に誘導される。発射レール42の下り傾斜の端部の上方には、遊技球を停留させるストッパー43が設けられており、玉送り開口部41から送り出された遊技球200は、発射レール42の下り傾斜の端部で1個の遊技球が停留されることになる(図2参照)。
そして、遊技者が操作ハンドル3を回動させると、操作ハンドル3に直結している発射ボリューム3b(図4参照)も回動し、発射ボリューム3bにより遊技球の発射強度が調整され、調整された発射強度で発射用ソレノイド4a(図4参照)に直結された打出部材4cが回転する。この打出部材4cが回転することで、打出部材4cにより発射レール42の下り傾斜の端部に貯留されている遊技球200が打ち出され、遊技球が遊技領域6に発射されることとなる。
上記のようにして発射された遊技球は、発射レール42からレール5a、5b間を上昇して玉戻り防止片5cを超えると、遊技領域6に到達し、その後遊技領域6内を落下する。このとき、遊技領域6に設けられた複数の釘や風車によって、遊技球は予測不能に落下することとなる。
また、上記遊技領域6には、複数の一般入賞口12が設けられている。これら各一般入賞口12には、一般入賞口検出スイッチ12a(図4参照)が設けられており、この一般入賞口検出スイッチ12aが遊技球の入賞を検出すると、所定の賞球(例えば10個の遊技球)が払い出される。
また、上記遊技領域6の中央下側の領域には、遊技球が入球可能な始動領域を構成する第1始動口14および第2始動口15と、遊技球が入球可能な第2大入賞口17とが設けられている。
この第2始動口15は、一対の可動片15bを有しており、これら一対の可動片15bが閉状態に維持される態様(以下、「第1の態様」という)と、一対の可動片15bが開状態となる態様(以下、「第2の態様」という)とに可動制御される。なお、第2始動口15が上記第1の態様に制御されているときには、当該第2始動口15の真上に位置する第2大入賞口17の入賞部材が障害物となって、遊技球の受入れを不可能としている。一方で、第2始動口15が上記第2の態様に制御されているときには、上記一対の可動片15bが受け皿として機能し、第2始動口15への遊技球の入賞が容易となる。つまり、第2始動口15は、第1の態様にあるときには遊技球の入賞機会がなく、第2の態様にあるときには遊技球の入賞機会が増すこととなる。
ここで、第1始動口14には遊技球の入球を検出する第1始動口検出スイッチ14a(図4参照)が設けられ、第2始動口15には遊技球の入球を検出する第2始動口検出スイッチ15a(図4参照)が設けられている。そして、第1始動口検出スイッチ14aまたは第2始動口検出スイッチ15aが遊技球の入球を検出すると、特別図柄判定用乱数値等を取得し、後述する大当たり遊技を実行する権利獲得の抽選(以下、「大当たりの抽選」という)が行われる。また、第1始動口検出スイッチ14aまたは第2始動口検出スイッチ15aが遊技球の入球を検出した場合にも、所定の賞球(例えば3個の遊技球)が払い出される。
また、第2大入賞口17は、遊技盤2に形成された開口部から構成されている。この第2大入賞口17の下部には、遊技盤面側からガラス板52側に突出可能な第2大入賞口開閉扉17bを有しており、この第2大入賞口開閉扉17bが遊技盤面側に突出する開放状態と、遊技盤面に埋没する閉鎖状態とに可動制御される。そして、第2大入賞口開閉扉17bが遊技盤面に突出していると、遊技球を第2大入賞口17内に導く受け皿として機能し、遊技球が第2大入賞口17に入球可能となる。この第2大入賞口17には第2大入賞口検出スイッチ17a(図4参照)が設けられており、この第2大入賞口検出スイッチ17aが遊技球の入球を検出すると、予め設定された賞球(例えば15個の遊技球)が払い出される。
さらに、上記遊技領域6の右側の領域には、遊技球が通過可能な普通領域を構成する普通図柄ゲート13と、遊技球が入球可能な第1大入賞口16とが設けられている。
このため、操作ハンドル3を大きく回動させ、強い力で打ち出された遊技球でないと、普通図柄ゲート13と第1大入賞口16とには遊技球が、通過または入賞しないように構成されている。
この普通図柄ゲート13には、遊技球の通過を検出するゲート検出スイッチ13a(図4参照)が設けられており、このゲート検出スイッチ13aが遊技球の通過を検出すると、普通図柄判定用乱数値を取得し、後述する「普通図柄の抽選」が行われる。
第1大入賞口16は、通常は第1大入賞口開閉扉16bによって閉状態に維持されており、遊技球の入球を不可能としている。これに対して、後述する特別遊技が開始されると、第1大入賞口開閉扉16bが開放されるとともに、この第1大入賞口開閉扉16bが遊技球を第1大入賞口16内に導く受け皿として機能し、遊技球が第1大入賞口16に入球可能となる。第1大入賞口16には第1大入賞口検出スイッチ16a(図4参照)が設けられており、この第1大入賞口検出スイッチ16aが遊技球の入球を検出すると、予め設定された賞球(例えば15個の遊技球)が払い出される。
さらには、遊技領域6の最下部であって遊技領域6の最下部の領域には、一般入賞口12、第1始動口14、第2始動口15、第1大入賞口16および第2大入賞口17のいずれにも入球しなかった遊技球を排出するためのアウト口11が設けられている。
また、遊技領域6の中央には、遊技球の流下に影響を与える飾り部材7が設けられている。この飾り部材7の略中央部分には、液晶表示装置31が設けられており、この液晶表示装置31の上方には、ベルトの形をした演出用駆動装置33が設けられている。
なお、本実施形態においては、液晶表示装置31を液晶表示器として用いているが、有機ELディスプレイを用いてもよいし、プロジェクター、円環状の構造物からなるリール、いわゆる7セグメントLED、ドットマトリクス等の表示装置等を用いてもよい。
この液晶表示装置31は、遊技が行われていない待機中に画像を表示したり、遊技の進行に応じた画像を表示したりする。なかでも、後述する大当たりの抽選結果を報知するための3個の演出図柄36が表示され、特定の演出図柄36の組合せ(例えば、777等)が停止表示されることにより、大当たりの抽選結果として大当たりが報知される。
より具体的には、第1始動口14または第2始動口15に遊技球が入球したときには、3個の演出図柄36をそれぞれスクロール表示するとともに、所定時間経過後に当該スクロールを停止させて、演出図柄36を停止表示するものである。また、この演出図柄36の変動表示中に、さまざまな画像やキャラクタ等を表示することによって、大当たりに当選するかもしれないという高い期待感を遊技者に与えるようにもしている。
上記演出用駆動装置33は、その動作態様によって遊技者に期待感を与えるものである。演出用駆動装置33は、例えば、ベルトが下方に移動したり、ベルト中央部の回転部材が回転したりする動作を行う。これら演出用駆動装置33の動作態様によって、遊技者にさまざまな期待感を与えるようにしている。
さらに、上記の各種の演出装置に加えて、音声出力装置32は、バックグラウンドミュージック、サウンドエフェクト等を出力し、サウンドによる演出を行い、演出用照明装置34は、各ランプの光の照射方向や発光色を変更して、照明による演出を行うようにしている。
また、演出ボタン35は、例えば、上記液晶表示装置31に当該演出ボタン35を操作するようなメッセージが表示されたときのみ有効となる。演出ボタン35には、演出ボタン検出スイッチ35a(図4参照)が設けられており、この演出ボタン検出スイッチ35aが遊技者の操作を検出すると、この操作に応じてさらなる演出が実行される。
遊技領域6の右下方には、第1特別図柄表示装置20、第2特別図柄表示装置21、普通図柄表示装置22、第1特別図柄保留表示器23、第2特別図柄保留表示器24、普通図柄保留表示器25が設けられている。
上記第1特別図柄表示装置20は、第1始動口14に遊技球が入球したことを契機として行われた大当たりの抽選結果を報知するものであり、7セグメントのLEDで構成されている。つまり、大当たりの抽選結果に対応する特別図柄が複数設けられており、この第1特別図柄表示装置20に大当たりの抽選結果に対応する特別図柄を表示することによって、抽選結果を遊技者に報知するようにしている。例えば、大当たりに当選した場合には「7」が表示され、ハズレであった場合には「−」が表示される。このようにして表示される「7」や「−」が特別図柄となるが、この特別図柄はすぐに表示されるわけではなく、所定時間変動表示された後に、停止表示されるようにしている。
ここで、「大当たりの抽選」とは、第1始動口14または第2始動口15に遊技球が入球したときに、特別図柄判定用乱数値を取得し、取得した特別図柄判定用乱数値が「大当たり」に対応する乱数値であるか、「小当たり」に対応する乱数値であるかの判定する処理をいう。この大当たりの抽選結果は即座に遊技者に報知されるわけではなく、第1特別図柄表示装置20において特別図柄が点滅等の変動表示を行い、所定の変動時間を経過したところで、大当たりの抽選結果に対応する特別図柄が停止表示して、遊技者に抽選結果が報知されるようにしている。なお、第2特別図柄表示装置21は、第2始動口15に遊技球が入球したことを契機として行われた大当たりの抽選結果を報知するためのもので、その表示態様は、上記第1特別図柄表示装置20における特別図柄の表示態様と同一である。
また、本実施形態において「大当たり」というのは、第1始動口14または第2始動口15に遊技球が入球したことを条件として行われる大当たりの抽選において、大当たり遊技を実行する権利を獲得したことをいう。「大当たり遊技」においては、第1大入賞口16または第2大入賞口17が開放されるラウンド遊技を計15回行う。各ラウンド遊技における第1大入賞口16または第2大入賞口17の最大開放時間については予め定められた時間が設定されており、この間に第1大入賞口16または第2大入賞口17に所定個数の遊技球(例えば9個)が入球すると、1回のラウンド遊技が終了となる。つまり、「大当たり遊技」は、第1大入賞口16または第2大入賞口17に遊技球が入球するとともに、当該入球に応じた賞球を遊技者が獲得できる遊技である。
本実施形態では、「大当たりの抽選」においては、その当選確率により2つの遊技状態が設定されている。すなわち、当選確率が1/299.5に設定された「低確率遊技状態」と、当選確率が1/29.95に設定された「高確率遊技状態」である。また、「大当たり遊技」においても、複数種類の大当たり遊技が設定されている。例えば、「長当たり遊技」となれば、第1大入賞口16が、1ラウンド遊技ごとに、29.000秒間×1回開放(×15ラウンド)される。「短当たり遊技」となれば、第2大入賞口17が、1ラウンド遊技ごとに、0.052秒間×1回(×15ラウンド)開放される。「発展当たり遊技」となれば、第2大入賞口17が、最初の1ラウンド遊技では0.052秒間×3回開放され、2ラウンド目以降は、1ラウンド遊技ごとに29.000秒間×1回(×14ラウンド)開放される。
また、「小当たり」の場合は、当選確率が1/149.75の1つの遊技状態が設定されている。また、「小当たり遊技」となれば、ラウンド遊技ではないものの、第2大入賞口17が0.052秒間×15回開放される。なお、本実施形態では、「大当たり遊技」と「小当たり遊技」とを総称して「特別遊技」という。
また、普通図柄表示装置22は、普通図柄ゲート13を遊技球が通過したことを契機として行われる普通図柄の抽選結果を報知するためのものである。詳しくは後述するが、この普通図柄の抽選によって当たりに当選すると普通図柄表示装置22が点灯し、その後、上記第2始動口15が所定時間、第2の態様に制御される。
ここで、「普通図柄の抽選」とは、普通図柄ゲート13に遊技球が通過したときに、普通図柄判定用乱数値を取得し、取得した普通図柄判定用乱数値が「当たり」に対応する乱数値であるかどうかを判定する処理をいう。この普通図柄の抽選結果についても、普通図柄ゲート13を遊技球が通過して即座に抽選結果が報知されるわけではなく、普通図柄表示装置22において普通図柄が点滅等の変動表示を行い、所定の変動時間を経過したところで、普通図柄の抽選結果に対応する普通図柄が停止表示して、遊技者に抽選結果が報知されるようにしている。
さらに、特別図柄の変動表示中や後述する特別遊技中等、第1始動口14または第2始動口15に遊技球が入球して、即座に大当たりの抽選が行えない場合には、一定の条件のもとで、大当たりの抽選の権利が保留される。より詳細には、第1始動口14に遊技球が入球したときに取得された特別図柄判定用乱数値を第1保留として記憶し、第2始動口15に遊技球が入球したときに取得された特別図柄判定用乱数値を第2保留として記憶する。
これら両保留は、それぞれ上限保留個数を4個に設定し、その保留個数は、それぞれ第1特別図柄保留表示器23と第2特別図柄保留表示器24とに表示される。なお、第1保留が1つの場合には、第1特別図柄保留表示器23の左側のLEDが点灯し、第1保留が2つの場合には、第1特別図柄保留表示器23の2つのLEDが点灯する。また、第1保留が3つの場合には、第1特別図柄保留表示器23の左側のLEDが点滅するとともに右側のLEDが点灯し、第1保留が4つの場合には、第1特別図柄保留表示器23の2つのLEDが点滅する。また、第2特別図柄保留表示器24においても、上記と同様に第2保留の保留個数が表示される。
そして、普通図柄の上限保留個数も4個に設定されており、その保留個数が、上記第1特別図柄保留表示器23および第2特別図柄保留表示器24と同様の態様によって、普通図柄保留表示器25において表示される。
ガラス枠50は、遊技盤2の前方(遊技者側)において遊技領域6を視認可能に覆うガラス板52を支持している。なお、ガラス板52は、ガラス枠50に対して着脱可能に固定されている。
またガラス枠50は、左右方向の一端側(たとえば遊技機1に正対して左側)においてヒンジ機構部51を介して外枠60に連結されており、ヒンジ機構部51を支点として左右方向の他端側(たとえば遊技機1に正対して右側)を外枠60から開放させる方向に回動可能とされている。ガラス枠50は、ガラス板52とともに遊技盤2を覆い、ヒンジ機構部51を支点として扉のように回動することによって、遊技盤2を含む外枠60の内側部分を開放することができる。ガラス枠50の他端側には、ガラス枠50の他端側を外枠60に固定するロック機構が設けられている。ロック機構による固定は、専用の鍵によって解除することが可能とされている。また、ガラス枠50には、ガラス枠50が外枠60から開放されているか否かを検出する扉開放スイッチ133(図4参照)も設けられている。
遊技機1の裏面には、主制御部110が搭載された主制御基板、演出制御部120が搭載された演出制御基板、払出制御部130が搭載された払出制御基板、電源部170が搭載された電源基板、遊技情報出力端子板30などが設けられている。また、電源部170に遊技機1に電力を給電するための電源プラグ171や、図示しない電源スイッチが設けられている。
[遊技機の内部構成]
以下、本発明の実施形態に係る遊技機1の遊技進行に係る処理を制御する制御手段について説明する。
図4は、本実施形態に係る遊技機1の内部構成を示すブロック図である。
主制御部110は、遊技の基本動作を制御する主制御手段であり、第1始動口検出スイッチ14a等の各種検出信号を入力して、第1特別図柄表示装置20や第1大入賞口開閉ソレノイド16c等を駆動させて遊技を制御するものである。
この主制御部110は、メインCPU110aと、メインROM110bと、メインRAM110cと、主制御用の入力ポートおよび出力ポート(図示せず)とを少なくとも備えている。
この主制御用の入力ポートには、払出制御部130、一般入賞口12に遊技球が入球したことを検知する一般入賞口検出スイッチ12a、普通図柄ゲート13に遊技球が入球したことを検知するゲート検出スイッチ13a、第1始動口14に遊技球が入球したことを検知する第1始動口検出スイッチ14a、第2始動口15に遊技球が入球したことを検知する第2始動口検出スイッチ15a、第1大入賞口16に遊技球が入球したことを検知する第1大入賞口検出スイッチ16a、第2大入賞口17に遊技球が入球したことを検知する第2大入賞口検出スイッチ17aが接続されている。この主制御用の入力ポートによって、各種信号が主制御部110に入力される。
また、主制御用の出力ポートには、払出制御部130、第2始動口15の一対の可動片15bを開閉動作させる始動口開閉ソレノイド15c、第1大入賞口開閉扉16bを動作させる第1大入賞口開閉ソレノイド16c、第2大入賞口開閉扉17bを動作させる第2大入賞口開閉ソレノイド17c、特別図柄を表示する第1特別図柄表示装置20と第2特別図柄表示装置21、普通図柄を表示する普通図柄表示装置22、特別図柄の保留球数を表示する第1特別図柄保留表示器23と第2特別図柄保留表示器24、普通図柄の保留球数を表示する普通図柄保留表示器25、外部情報信号を出力する遊技情報出力端子板30が接続されている。この主制御用の出力ポートによって、各種信号が出力される。
主制御部110のメインCPU110aは、各検出スイッチやタイマからの入力信号に基づいて、メインROM110bに記憶されたプログラムを読み出して演算処理を行うとともに、演算処理の結果に応じて主制御部110を構成する各構成部への制御指示(以下、「制御信号」という)や主制御部110外の他の制御部への制御コマンドを出力したりする。
主制御部110のメインROM110bには、遊技進行に係る処理の内容や手順を記述した遊技処理用プログラムや、各種の遊技の決定に必要な固定データ、テーブルが予め記憶されている。
メインROM110bに記憶されたテーブルとして一例を挙げれば、大当たり抽選に参照される大当たり判定テーブル、普通図柄の抽選に参照される当たり判定テーブル、特別図柄の停止図柄を決定する図柄決定テーブル、大当たり終了後の遊技状態を決定するための大当たり遊技終了時設定データテーブル、大入賞口開閉扉の開閉条件を決定する特別電動役物作動態様決定テーブル、大入賞口開放態様テーブル、特別図柄の変動パターンを決定する変動パターン決定テーブルなどがある。
また、本実施形態において、メインROM110bには、メインCPU110aが、主制御部110から演出制御部120に送信される制御コマンドの正当性を認証するために用いる誤り検査値を生成し、生成した誤り検査値を制御コマンドに付加して演出制御部120に送信する処理を行うためのプログラムや、誤り検査値を生成するために必要なデータなどが記憶されている。なお、主制御部110が行う制御コマンドの正当性を認証する認証処理に係る処理の詳細については後述する。
主制御部110のメインRAM110cは、メインCPU110aの演算処理時におけるデータのワークエリアとして機能し、複数の記憶領域を有している。
メインRAM110cが有する記憶領域として一例を挙げれば、普通図柄保留数(G)記憶領域、普通図柄保留記憶領域、普通図柄データ記憶領域、第1特別図柄保留数(U1)記憶領域、第2特別図柄保留数(U2)記憶領域、第1特別図柄乱数値記憶領域、第2特別図柄乱数値記憶領域、ラウンド遊技回数(R)記憶領域、開放回数(K)記憶領域、大入賞口入球数(C)記憶領域、遊技状態記憶領域(高確率遊技フラグ記憶領域等)、高確率遊技回数(X)カウンタ、遊技状態バッファ、停止図柄データ記憶領域、送信データ用記憶領域、特別図柄時間カウンタ、特別遊技タイマカウンタなど各種のタイマカウンタなどがある。また、本実施形態において、メインRAM110cが有する記憶領域として誤り検査値を生成するために用いるデータである制御コマンドを記憶しておくコマンド記憶領域がある。
遊技情報出力端子板30は、主制御部110において生成された外部情報信号を遊技店のホールコンピュータ等に出力するための基板である。遊技情報出力端子板30は、主制御部110と配線接続され、外部情報を遊技店のホールコンピュータ等と接続をするためのコネクタが設けられている。
電源部170は、コンデンサからなるバックアップ電源を備えており、遊技機1に電源電圧を供給するとともに、遊技機1に供給する電源電圧を監視し、電源電圧が所定値以下となったときに、電断検知信号を主制御部110へ出力する。より具体的には、電源電圧が、所定値以下を示すために電断検知信号がローレベルとなり一定時間経過すると、リセット信号がローレベルとなり、メインCPU110aは動作を停止する処理を行う。その後、電源電圧が、所定値以上を示すために電断検知信号がハイレベルとなり一定時間経過すると、リセット信号がハイレベルとなり、メインCPU110aは動作を開始する処理を行う。バックアップ電源はコンデンサに限らず、例えば、電池でもよく、コンデンサと電池とを併用して用いてもよい。
演出制御部120は、主に遊技中や待機中等の各演出を制御する。この演出制御部120は、サブCPU120a、サブROM120b、サブRAM120cを備えており、主制御部110に対して、当該主制御部110から演出制御部120への一方向に通信可能に接続されている。サブCPU120aは、主制御部110から送信された制御コマンド、または、上記演出ボタン検出スイッチ35a、タイマからの入力信号に基づいて、サブROM120bに記憶されたプログラムを読み出して演算処理を行うとともに、当該処理に基づいて、対応するデータをランプ制御部140または画像制御部150に送信する。サブRAM120cは、サブCPU120aの演算処理時におけるデータのワークエリアとして機能する。
例えば、演出制御部120におけるサブCPU120aは、主制御部110から送信された制御コマンドの1つである特別図柄の変動態様を示す変動パターン指定コマンドを受信すると、受信した変動パターン指定コマンドの内容を解析して、液晶表示装置31、音声出力装置32、演出用駆動装置33、演出用照明装置34に所定の演出を実行させるためのデータを生成し、かかるデータを画像制御部150やランプ制御部140へ送信する。
また、演出制御部120は、主制御部110と同様の方法で誤り検査値を生成する。演出制御部120は、主制御部110から送信された誤り検査値と生成した誤り検査値とを用いて、制御コマンドの正当性を認証する認証処理を行う。なお、演出制御部120が行う認証処理の詳細については後述する。
演出制御部120のサブROM120bには、主制御部110から送信された誤り検査値を用いて、その誤り検査値が付加された制御コマンドの正当性を認証する処理を行うためのプログラムや、演出制御用のプログラムや各種の遊技の決定に必要なデータ、テーブルが記憶されている。
サブROM120bに記憶されたテーブルとして一例を挙げれば、主制御部110から受信した変動パターン指定コマンドに基づいて演出パターンを決定するための演出パターン決定テーブル、停止表示する演出図柄36の組み合わせを決定するための演出図柄決定テーブルなどがある。
演出制御部120のサブRAM120cは、サブCPU120aの演算処理時におけるデータのワークエリアとして機能し、複数の記憶領域を有している。
サブRAM120cが有する記憶領域として一例を挙げれば、遊技状態記憶領域、演出モード記憶領域、演出パターン記憶領域、演出図柄記憶領域などがある。また、本実施形態において、サブRAM120cが有する記憶領域として、メインRAM110cと同様に、誤り検査値を生成するために用いるデータである制御コマンドを記憶しておくコマンド記憶領域がある。
払出制御部130は、遊技球の払い出し制御を行う。この払出制御部130は、図示しない払出CPU、払出ROM、払出RAMから構成されるワンチップマイコンを備えており、主制御部110に対して、双方向に通信可能に接続されている。払出CPUは、遊技球が払い出されたか否かを検知する払出球計数検知スイッチ132、扉開放スイッチ133、タイマからの入力信号に基づいて、払出ROMに記憶されたプログラムを読み出して演算処理を行うとともに、当該処理に基づいて、対応するデータを主制御部110に送信する。
また、払出制御部130の出力側には、遊技球の貯留部から所定数の遊技球を払い出すための払出装置の払出モータ131が接続されている。払出CPUは、主制御部110から送信された制御コマンドの1つである払出個数指定コマンドに基づいて、払出ROMから所定のプログラムを読み出して演算処理を行うとともに、払出装置の払出モータ131を制御して所定の遊技球を払い出す。このとき、払出RAMは、払出CPUの演算処理時におけるデータのワークエリアとして機能する。
ランプ制御部140は、遊技盤2に設けられた演出用照明装置34を点灯制御したり、光の照射方向を変更するためのモータに対する駆動制御をしたりする。また、演出用駆動装置33を動作させるソレノイドやモータ等の駆動源を通電制御する。このランプ制御部140は、演出制御部120に接続されており、演出制御部120から送信された各種のコマンドに基づいて、上記の各制御を行うこととなる。
画像制御部150は、液晶表示装置31の画像表示制御を行うためのホストCPU、ホストCPUのワークエリアとして機能する一時的な記憶領域を有するホストRAM、ホストCPUの制御処理のプログラム等が記憶されたホストROM、画像データが記憶されたCGROM、画像データを描画するフレームバッファを有するVRAM、画像プロセッサとなるVDP(Video Display Processor)と、音の制御を行う音制御回路とを備えている。
ホストCPUは、演出制御部120から受信した演出パターン指定コマンドに基づいて、VDPにCGROMに記憶されている画像データを液晶表示装置31に表示させる指示を行う。
VDPは、ホストCPUからの指示に基づいて、CGROMに記憶された画像データをVRAMのフレームバッファに描画する。次に、VRAMにある表示用のフレームバッファに記憶された画像データに基づいて映像信号(RGB信号等)を生成し、生成した映像信号を液晶表示装置31に出力する。
音制御回路には、音声データが多数記憶されている音声ROMが備えられており、音制御回路が、演出制御部120から送信されたコマンドに基づいて所定のプログラムを読み出すとともに、音声出力装置32における音声出力制御をする。
発射制御部160は、遊技球の発射制御を行う。この発射制御部160は、入力側にタッチセンサ3aおよび発射ボリューム3bが接続されており、出力側に発射用ソレノイド4aおよび玉送りソレノイド4bを接続している。発射制御部160は、タッチセンサ3aからのタッチ信号を入力するとともに、発射ボリューム3bから供給された電圧に基づいて、発射用ソレノイド4aや玉送りソレノイド4bを通電させる制御を行う。
タッチセンサ3aは、操作ハンドル3の内部に設けられ、遊技者が操作ハンドル3に触れたことによる静電容量の変化を利用した静電容量型の近接スイッチから構成される。タッチセンサ3aは、遊技者が操作ハンドル3に触れたことを検知すると、発射制御部160(図4参照)に発射用ソレノイド4aの通電を許可するタッチ信号を出力する。発射制御部160は、大前提としてタッチセンサ3aからタッチ信号の入力がなければ、遊技球200を遊技領域6に発射させないように構成されている。
発射ボリューム3bは、操作ハンドル3が回動する回動部に直結して設けられ、可変抵抗器から構成される。発射ボリューム3bは、その発射ボリューム3bに印加された定電圧(例えば5V)を可変抵抗器により分圧して、分圧した電圧を発射制御部160に供給する(発射制御部160に供給する電圧を可変させる)。発射制御部160は、発射ボリューム3bにより分圧された電圧に基づいて、発射用ソレノイド4aを通電して、発射用ソレノイド4aに直結された打出部材4cを回転させることで、遊技球200を遊技領域6に発射させる。
発射用ソレノイド4aは、ロータリーソレノイドから構成され、発射用ソレノイド4aには打出部材4cが直結されており、発射用ソレノイド4aが回転することで、打出部材4cを回転させる。
ここで、発射用ソレノイド4aの回転速度は、発射制御部160に設けられた水晶発振器の出力周期に基づく周波数から、約99.9(回/分)に設定されている。これにより、1分間における発射遊技数は、発射ソレノイドが1回転する毎に1個発射されるため、約99.9(個/分)となる。すなわち、1個の遊技球は約0.6秒毎に発射されることになる。
玉送りソレノイド4bは、直進ソレノイドから構成され、受け皿40にある遊技球を、発射用ソレノイド4aに直結された打出部材4cに向けて1個ずつ送り出す。
ここで、上記構成の演出制御部120、払出制御部130、ランプ制御部140、画像制御部150、および発射制御部160など、主制御部110からの制御コマンドに基づいて、若しくは当該制御コマンドに基づいて生成されるコマンドに従って遊技機1の制御処理を行う制御部を総称して「周辺部300」という。また、演出制御部120が搭載された演出制御基板や払出制御部130が搭載された払出制御基板など、周辺部300の各制御部が搭載された各制御基板を総称して「周辺基板」という。なお、ランプ制御部140および画像制御部150は、演出制御部120と同一の基板上に搭載することもできる。また、払出制御部130および発射制御部160は、主制御部110と同一の基板上に搭載することもできる。
[遊技機の認証処理に関する構成]
以下、上記構成の遊技機1が不正防止のために有する認証機能を実現する制御手段について説明する。
本実施形態に係る遊技機1の認証機能は、周辺部300が主制御部110から送信された制御コマンドの正当性を認証することで、主制御部110を認証して実現される。つまり、遊技機1は、主制御部110から送信されてきた制御コマンドが正当なものであれば、主制御部110も正当なものであると判断するのである。なお、本実施形態では、周辺部300のうち演出制御部120に主制御部110を認証する機能が備えられていることとして説明する。
具体的には、主制御部110は、制御コマンドを予め複数(例えば、2つ)のグループに分類可能に構成されている。そして、主制御部110は、今回送信する制御コマンドがいずれのグループに属するかを識別し、当該制御コマンドと同一のグループに属する制御コマンドのうちの過去(例えば、1個前)に演出制御部120に送信した制御コマンドを用いて誤り検査値を生成する。そして、主制御部110は、生成した誤り検査値を今回送信する制御コマンドに付加して演出制御部120に送信する。ここで、主制御部110は、今回送信する制御コマンドと同一のグループに属する制御コマンドのうちの次回送信する制御コマンドに付加する誤り検査値の生成方式を予め設定された複数の生成方式のいずれとするかを、今回送信する制御コマンドに付加する誤り検査値を用いて決定する。
一方、演出制御部120は、主制御部110と同様に、制御コマンドを予め複数のグループに分類可能に構成されている。そして、演出制御部120は、今回受信した制御コマンドがいずれのグループに属するかを識別し、当該制御コマンドと同一のグループに属する制御コマンドのうちの過去(例えば、1個前)に受信した制御コマンドを用いて認証用の誤り検査値を生成する。そして、演出制御部120は、生成した誤り検査値と、今回受信した制御コマンドに付加された誤り検査値とを照合して、これらが一致した場合は、今回送信された制御コマンドの正当性が認証され、主制御部110の認証が成功したと判断する。ここで、演出制御部120は、今回受信した制御コマンドと同一のグループに属する制御コマンドのうちの次回受信する制御コマンドに係る認証に用いる誤り検査値の生成方式を予め設定された複数の生成方式のいずれとするかを、今回受信した制御コマンドに係る認証に用いる誤り検査値を用いて決定する。
なお、本実施形態では、制御コマンドを2つのグループ(グループAとグループB)に分類する例について説明する。また、本実施形態では、誤り検査値を2つの生成方式(方式α、方式β)で生成可能として説明する。さらにまた、本実施形態では、今回送信される制御コマンドと同一のグループに属するもののうち当該制御コマンドの1個前に送信された制御コマンドを用いて誤り検査値を生成して、当該制御コマンドに付加する例について説明する。
また、本実施形態では、主制御部110は、今回送信する誤り検査値が所定の切替条件を満たす場合に、今回送信する制御コマンドと同一のグループに属する制御コマンドのうちの次回送信する制御コマンドに付加する誤り検査値の生成方式を変更する。以下、便宜上、誤り検査値は、その生成元となった制御コマンドと同一のグループに属しているとして説明する。具体的には、グループAに属する制御コマンドから生成された誤り検査値はグループAに属しているとして説明する。すなわち、今回送信する誤り検査値が所定の切替条件を満たす場合、当該誤り検査値と同一のグループに属する誤り検査値のうち次回送信する誤り検査値の生成方式を今回送信する誤り検査値の生成方式から変更する。
具体的には、今回送信する制御コマンドが例えばグループAに属し、かつ今回送信する誤り検査値が所定の切替条件を満たす場合に、グループAに関して現在設定されている生成方式を他の生成方式に変更する。また、今回送信する制御コマンドが例えばグループBに属し、かつ今回送信する誤り検査値が所定の切替条件を満たす場合に、グループBに関して現在設定されている生成方式を他の生成方式に変更する。このように、本実施形態では、グループA、グループBのそれぞれに関して独立して生成方式を制御しているのである。なお「所定の切替条件」とは、具体的には、誤り検査値の値が偶数か(または奇数か)、誤り検査値の値が所定値以上か(または所定値以下か)、誤り検査値の値が特定の値か(または特定の値ではないか)等である。
ここで、図5に、本実施形態における制御コマンドとそれに付加される誤り検査値の一例を示す。以下、主制御部110から演出制御部120へと送信される制御コマンド(制御コマンドデータ)と、それに付加された誤り検査値のことを制御コマンド情報という。また、以下の説明では、制御コマンドAnがグループAに属する制御コマンド、制御コマンドBnがグループBに属する制御コマンドとして説明する。また、1番目にグループA、2番目にグループA、3番目にグループA、4番目にグループB、5番目にグループB、6番目にグループB、7番目にグループAにそれぞれ属する制御コマンドが送信されるとして説明する。また、誤り検査値の生成方式は、最初、グループAおよびグループBのいずれも方式αに設定されているとする。また、制御コマンドA1の誤り検査値である誤り検査値A1および制御コマンドB1の誤り検査値である誤り検査値B1は、所定の切替条件を満たす誤り検査値とする。なお、図5に示す制御コマンドの送信順番は一例であって特にこれに制限されない。
図5に示すように、制御コマンド情報は、基本的に、今回送信される制御コマンドと同一のグループに属するもののうち当該制御コマンドの1個前に送信された制御コマンドの誤り検査値が、今回送信される制御コマンドに付加された形式になっている。ただし、最初に送信される制御コマンドA1には所定の初期値1が付加されている。2番目に送信される制御コマンドA2は、グループAに属する制御コマンドである。したがって、制御コマンドA2には、グループAに属する制御コマンドのうち1個前に送信された制御コマンドA1を用いて方式αで生成された誤り検査値A1(α)が付加される。ここで、誤り検査値A1(α)は所定の切替条件を満たすので、次回のグループAの生成方式が方式βに変更される。次に、3番目に送信される制御コマンドA3は、グループAに属する制御コマンドである。したがって、制御コマンドA3には、グループAに属する制御コマンドのうち1個前に送信された制御コマンドA2を用いて方式βで生成された誤り検査値A2(β)が付加される。次に、4番目に送信される制御コマンドB1は、グループBに属する制御コマンドで最初に送信される制御コマンドなので、所定の初期値である初期値2が付加される。次に、5番目に送信される制御コマンドB2は、グループBに属する制御コマンドである。したがって、制御コマンドB2には、グループBに属する制御コマンドのうち1個前に送信された制御コマンドB1を用いて方式αで生成された誤り検査値B1(α)が付加される。ここで、誤り検査値B1(α)は所定の切替条件を満たすので、次回のグループBの生成方式が方式βに変更される。次に、6番目に送信される制御コマンドB3は、グループBに属する制御コマンドである。したがって、制御コマンドB3には、グループBに属する制御コマンドのうち1個前に送信された制御コマンドB2を用いて方式βで生成された誤り検査値B2(β)が付加される。次に、7番目に送信される制御コマンドA4は、グループAに属する制御コマンドである。したがって、制御コマンドA4には、グループAに属する制御コマンドのうち1個前に送信された制御コマンドA3を用いて方式βで生成された誤り検査値A3(β)が付加される。以下、同様にして、今回送信する制御コマンドには、これが属するグループの制御コマンドのうち1個前に送信された制御コマンドの誤り検査値が付加される。また、今回送信する誤り検査値が所定の切替条件を満たす場合は、当該誤り検査値が属するグループの生成方式が他の生成方式に変更される。
ところで、制御コマンドを2以上の複数のグループに分ける場合の分類方法は特に制限されず、主制御部110と演出制御部120との間で予め取り決めてあればよい。例えば、各グループ間において、制御コマンドの出現頻度が略均等となるように分類しても良い。この場合、複数のグループが略均等に混成されて出現するので、不正者には、制御コマンドに誤り検査値がランダムに付加されているように見える。これにより、制御コマンドとそれに付加される誤り検査値の規則性の解析を困難とすることができセキュリティ強度を向上させることができる。
一方、特定のグループに属する制御コマンドの出現頻度が高く、それ以外のグループに属する制御コマンドの出現頻度が低くなるように分類してもよい。この場合、特定のグループに属する制御コマンドに時折他のグループに属する制御コマンドが混ざるように出現する。したがって、基本的には1個前に送信された制御コマンドの誤り検査値が今回送信される制御コマンドに付加され、時折出現する特定の制御コマンドの出現時に、大きく遡った過去に送信された制御コマンドの誤り検査値が今回送信される制御コマンドに付加されることとなる。したがって、この特定の制御コマンドにおいて誤り検査値の付加規則が変化することを知らない不正者が不正を行うことを防止することができるので、セキュリティ強度を向上させることができる。
また、初期値は特に制限されず、予め決められた、誤り検査値のダミーデータや、遊技機1に固有の情報である固有情報を用いることができる。固有情報は、具体的には、主制御基板の製造番号、メインCPU110aに固有のシリアル番号やメーカーコードなどの主制御部110に固有の識別情報である。また、固有情報としては、メインROM110bに記憶されているデータの一部である所定のデータを用いてもよい。すなわち、本実施形態において、固有情報は、予め決められた遊技機1に固有のデータである。なお、上記識別情報は、メインROM110bに記憶しておいてもよいし、主制御部110に設けられた他の記憶手段に記憶しておいてもよい。
図6は、本発明の一実施形態に係る遊技機1を構成する主制御部110の認証処理に関する構成を示す機能ブロック図である。主制御部110は、制御コマンド出力部500と、誤り検査値生成部510と、付加部550と、送信部560とを備えている。さらに、誤り検査値生成部510は、制御部520と、制御コマンド記憶部530と、誤り検査値演算部540とから構成される。主制御部110を構成する各機能ブロックは、例えば、図4に示す、メインCPU110a、メインROM110b、およびメインRAM110c等の主制御部110が有する各部材を適宜組み合わせて構成される。
制御コマンド出力部500は、演出制御部120によって行われる遊技処理の内容を指示するために、演出制御部120に今回送信する制御コマンドを生成し、誤り検査値生成部510の制御部520および制御コマンド記憶部530、ならびに付加部550に出力する。制御コマンド出力部500の機能を実現する具体的な手段は、例えば、図4に示すメインCPU110a、メインROM110bの一部、およびメインRAM110cの一部から構成することができる。より具体的には、メインCPU110aは、メインRAM10cをワークエリアとして、メインROM110bに予め記憶されているプログラムに基づき、今回出力すべき制御コマンドを決定し、出力する。また、メインCPU110aは、出力した制御コマンドをメインRAM110cの送信データ用記憶領域にセットする。
誤り検査値生成部510は、制御コマンドを予め2つのグループに分類しており、今回送信される制御コマンドがいずれのグループに属するかを識別する。そして、誤り検査値生成部510は、当該制御コマンドと同一のグループに属する制御コマンドのうち制御コマンド出力部500が1個前に出力した制御コマンドを用いて、予め決定している生成方式で誤り検査値を生成し、生成した誤り検査値を付加部550に出力する。また、誤り検査値生成部510は、今回送信される誤り検査値に応じて、当該誤り検査値が付加される制御コマンドと同一のグループに属する誤り検査値のうち、次回送信される誤り検査値の生成方式を決定する。
具体的には、誤り検査値生成部510を構成する制御部520は、今回送信される制御コマンドがいずれのグループに属するかを識別する。そして、制御部520は、識別結果に基づいて、この制御コマンドがいずれのグループに属するかを示す情報(以下、グループ情報という)を制御コマンド記憶部530に出力する。
また、制御部520は、識別結果に応じて、過去に送信された制御コマンドを記憶している制御コマンド記憶部530にいずれの制御コマンドを誤り検査値演算部540へと出力させるかを制御する。具体的には、制御部520は、今回送信される制御コマンドと同一のグループに属する制御コマンドのうち今回送信される制御コマンド(今回出力された制御コマンド)を基準として所定の過去(本実施形態では1個前)に送信された制御コマンドを誤り検査値演算部540へと出力させると判断する。そして、制御部520は、その判断結果に基づいて、いずれの制御コマンドを出力するべきかを示す制御信号(例えば、当該制御コマンドが記憶されたアドレスを示すアドレス情報等であり、以下、コマンド制御信号という)を制御コマンド記憶部530に出力する。
また、制御部520は、誤り検査値演算部540が生成した今回送信される誤り検査値を取得し、これに基づいて、当該誤り検査値が付加される制御コマンドが属するグループの誤り検査値のうち次回送信される誤り検査値の生成方式を複数の生成方式(本実施形態では2つの誤り検査値の生成方式)から決定する。換言すると、制御部520は、今回送信される誤り検査値に基づいて、当該誤り検査値が属するグループの誤り検査値のうち次回送信される誤り検査値の生成方式を決定する。制御部520は、決定した生成方式の情報をグループ毎に記憶する記憶領域(以下、生成方式記憶領域という)を有し、各グループの生成方式の情報を個別に記憶している。
ここで、本実施形態において、制御部520は、今回送信される誤り検査値が所定の切替条件を満たす場合に、当該誤り検査値が付加される制御コマンドが属するグループの生成方式を変更する。例えば、グループAにおいて今回の誤り検査値が方式αで生成された場合、すなわち、生成方式記憶領域の生成方式の情報が方式αの場合、次回の生成方式を方式βに決定し、生成方式記憶領域の生成方式の情報を更新する。一方、制御部520は、今回送信される誤り検査値が所定の切替条件を満たさない場合に、誤り検査値の生成方式を継続する。例えば、グループAにおいて今回の誤り検査値が方式αで生成された場合、すなわち、生成方式記憶領域の生成方式の情報が方式αの場合、次回の生成方式を方式αに決定し、生成方式記憶領域の生成方式の情報を継続する。
また、制御部520は、今回送信される制御コマンドのグループに対応する生成方式記憶領域に記憶されている生成方式の情報に基づいて、誤り検査値演算部540がいずれの生成方式を用いるべきかを示す制御信号(以下、方式制御信号という)を出力する。なお、今回送信される誤り検査値がいずれの生成方式を用いるべきかを示す生成方式の情報は、当該誤り検査値と同一のグループの誤り検査値のうち、前回送信された誤り検査値に基づいて決定されている。
制御部520の機能を実現する具体的な手段は、例えば、図4に示すメインCPU110a、メインROM110bの一部、およびメインRAM110cの一部から構成することができる。より具体的には、メインCPU110aは、メインRAM110cをワークエリアとして、今回出力された制御コマンド(コマンドデータ)、およびメインROM110bに予め記憶されているプログラムに基づき、この制御コマンドがいずれのグループに属するかを識別する。そして、識別結果に基づいて、今回誤り検査値を生成するのに用いるべき制御コマンドを特定し、コマンド制御信号を出力する。また、メインCPU110aは、メインRAM110cをワークエリアとして、今回出力された誤り検査値、およびメインROM110bに予め記憶されているプログラムに基づき、メインRAM110cの生成方式記憶領域に記憶されている生成方式の情報を更新する。
制御コマンド記憶部530は、制御部520から出力されたグループ情報に基づいて制御コマンド出力部500から出力された制御コマンドを記憶する。また、制御コマンド記憶部530は、制御部520から出力されたコマンド制御信号に基づいて、今回誤り検査値の生成に用いられる制御コマンドを誤り検査値演算部540に出力する。詳細には、制御コマンド記憶部530は、コマンド記憶領域を含み、このコマンド記憶領域は、グループAに属する制御コマンドを記憶するコマンド記憶領域Aと、グループBに属する制御コマンドを記憶するコマンド記憶領域Bとに分かれている。そして、制御コマンド記憶部530は、制御部520から出力されたグループ情報に基づいて、制御コマンド出力部500から今回出力された制御コマンドをそのグループに対応するコマンド記憶領域に記憶する。
また、制御コマンド記憶部530は、制御部520から出力されたコマンド制御信号に基づいて、今回送信される制御コマンドが属するグループに対応するコマンド記憶領域に記憶されている制御コマンドのうち今回送信される制御コマンドを基準として所定の過去(本実施形態では1個前)に送信された制御コマンドを今回誤り検査値の生成に用いられる制御コマンドとして誤り検査値演算部540に出力する。
制御コマンド記憶部530の機能を実現する具体的な手段は、例えば、図4に示すメインCPU110a、メインRAM110cに設けられるコマンド記憶領域等である。より具体的には、メインCPU110aは、メインRAM110cをワークエリアとして、今回出力された制御コマンドのグループ情報、およびメインROM110bに予め記憶されているプログラムに基づき、この制御コマンドが属するグループに対応するコマンド記憶領域にこの制御コマンドを記憶する。さらに、メインCPU110aは、この制御コマンドが属するグループに対応するコマンド記憶領域に記憶されている制御コマンドのうち今回出力された制御コマンドを基準として1個前に記憶された制御コマンドを今回誤り検査値の生成に用いる制御コマンドとして取得する。
誤り検査値演算部540は、複数の誤り検査値の生成方式、本実施形態では2つの誤り検査値の生成方式(方式αおよび方式β)で誤り検査値を生成可能である。誤り検査値演算部540は、制御部520から出力された方式制御信号に基づいて、制御部520によって決定された生成方式で、制御コマンド記憶部530から出力された制御コマンドを用いて誤り検査値を生成する。さらに、誤り検査値演算部540は、生成した誤り検査値を制御部520および付加部550に出力する。誤り検査値演算部540の機能を実現する具体的な手段は、例えば、図4に示すメインCPU110a、メインROM110bの一部、およびメインRAM110cの一部から構成することができる。より具体的には、メインCPU110aは、メインRAM110cをワークエリアとして、方式制御信号およびメインROM110bに予め記憶されているプログラムに基づき、誤り検査値を生成し、出力する。
なお、後に詳述するが、制御コマンドは、制御コマンドの分類を示す1バイトの情報(MODE)と、制御コマンドの詳細を示す1バイトの情報(DATA)からなる2バイトの制御コマンドデータとして表される。また、本実施形態において、「制御コマンドを用いて誤り検査値を生成する」とは、制御コマンドの具体的な値である制御コマンドデータを用いて、誤り検査値を生成することである。本実施形態において、特に言及しない限りにおいて「制御コマンド」という言葉には、制御コマンドデータの意味が含まれるものとする。また、「制御コマンドを用いて生成された誤り検査値」を単に「制御コマンドの誤り検査値」ともいう。
また、本実施形態において誤り検査値の生成方式は、特に制限されず、例えば、チェックサム方式、CRC方式、奇数パリティ方式、偶数パリティ方式、群計数チェック方式、垂直パリティ方式、水平パリティ方式、またはハミング符号方式等の公知の生成方式を用いることができる。また、誤り検査値は、四則演算、論理演算を用いて生成してもよい。また、制御コマンドデータのビットをシフトする処理(ビットシフト処理)やローテイトする処理(ローテイト処理)を用いて生成してもよい。
付加部550は、制御コマンド出力部500から出力された今回送信される制御コマンドに、誤り検査値演算部540から出力された今回送信される誤り検査値を付加して、演出制御部120へと送信される制御コマンド情報を生成する。付加部550の機能を実現する具体的な手段は、例えば、図4に示すメインCPU110a、メインROM110bの一部、およびメインRAM110cの一部から構成することができる。より具体的には、メインCPU110aは、メインRAM110cをワークエリアとして、メインROM110bに予め記憶されているプログラムに基づき、制御コマンド情報を生成する。
送信部560は、今回送信する制御コマンドに誤り検査値を付加して生成された制御コマンド情報を演出制御部120へと送信する。送信部560の機能を実現する具体的な手段は、図4に示すメインCPU110a、メインROM110bの一部、およびメインRAM110cの一部や、図示しない送信回路等から構成することができる。
このように構成された主制御部110の各構成部の動作の概略を説明する。遊技機1の電源が投入され、主制御部110のメインCPU110aが初期化処理を行った後、制御コマンド出力部500は、演出制御部120に今回送信される制御コマンドを生成し、誤り検査値生成部510および付加部550に出力する。
誤り検査値生成部510は、出力された今回送信される制御コマンドがいずれのグループに属するかを識別する。そして、誤り検査値生成部510は、識別結果に基づいて、制御コマンドをグループ毎に分類して記憶する。また、誤り検査値生成部510は、識別結果に基づいて、今回送信される制御コマンドと同一のグループに属する制御コマンドのうち1個前に送信された制御コマンドを用いて、予め決定している生成方式で誤り検査値を生成し付加部550に出力する。また、誤り検査値生成部510は、今回送信される誤り検査値に基づいて、当該誤り検査値が付加される制御コマンドが属するグループに関する次回の誤り検査値の生成方式を決定する。
付加部550は、制御コマンド出力部500から出力された今回送信される制御コマンドに、誤り検査値生成部510から出力された今回送信される誤り検査値を付加して制御コマンド情報を生成し、送信部560へ出力する。
送信部560は、付加部550から受け取った制御コマンド情報を演出制御部120へと送信する。
図7は、本発明の一実施形態に係る遊技機1を構成する演出制御部120の認証処理に関する構成を示す機能ブロック図である。演出制御部120は、受信部600と、誤り検査値生成部610と、誤り検査部650とを備えている。さらに、誤り検査値生成部610は、制御部620と、制御コマンド記憶部630と、誤り検査値演算部640とから構成される。演出制御部120を構成する各機能ブロックは、図4に示す、サブCPU120a、サブROM120b、およびサブRAM120c等の各部材を適宜組み合わせて構成される。
受信部600は、受信データ用記憶領域を有し、主制御部110から受信した制御コマンド情報を受信データ用記憶領域に書き込む。また、受信部600は、受信した制御コマンド情報に含まれる今回受信した制御コマンドを誤り検査値生成部610へ、今回受信した制御コマンドに付加された誤り検査値を誤り検査部650へと出力する。受信部600の機能を実現する具体的な手段は、例えば、図4に示すサブCPU120a、サブROM120bの一部、およびサブRAM120cの受信データ用記憶領域等や、図示しない受信回路等から構成することができる。より具体的には、サブCPU120aは、サブRAM120cをワークエリアとして、サブROM120bに予め記憶されているプログラムに基づき、受信データ用記憶領域に記憶されている今回受信した制御コマンド情報から制御コマンドおよび誤り検査値を抽出する。
誤り検査値生成部610は、誤り検査値生成部510と同様に、制御コマンドを予め複数(本実施形態では2つ)のグループに分類しており、今回送信された(受信された)制御コマンドがいずれのグループに属するかを識別する。そして、誤り検査値生成部610は、当該制御コマンドと同一のグループに属する制御コマンドのうち受信部600が過去(本実施形態では1個前)に送信された制御コマンドを用いて、予め決定している生成方式で誤り検査値を生成し、生成した誤り検査値を誤り検査部650に出力する。また、誤り検査値生成部610は、今回生成した誤り検査値に応じて、今回送信された制御コマンドと同一のグループに属する誤り検査値のうち、次回生成する誤り検査値の生成方式を決定する。
具体的には、誤り検査値生成部610を構成する制御部620は、今回送信された制御コマンドのグループがいずれのグループに属するかを識別する。そして、制御部620は、識別結果に基づいて、この制御コマンドがいずれのグループに属するかを示すグループ情報を制御コマンド記憶部630に出力する。
また、制御部620は、識別結果に応じて、過去に送信された制御コマンドを記憶している制御コマンド記憶部630にいずれの制御コマンドを誤り検査値演算部640へと出力させるかを制御する。具体的には、制御部620は、今回送信された制御コマンドと同一のグループに属する制御コマンドのうち今回送信された制御コマンドを基準として所定の過去(本実施形態では1個前)に送信された制御コマンドを誤り検査値演算部640へと出力させると判断する。そして、制御部620は、その判断結果に基づいて、いずれの制御コマンドを出力するべきかを示すコマンド制御信号を制御コマンド記憶部630に出力する。
また、制御部620は、誤り検査値演算部640が生成した今回誤り検査に用いられる誤り検査値を取得し、これに基づいて、今回送信された制御コマンドが属するグループの誤り検査値のうち次回生成する誤り検査値の生成方式を複数の生成方式(本実施形態では2つの誤り検査値の生成方式)から決定する。換言すると、制御部620は、当該誤り検査値に基づいて、当該誤り検査値が属するグループの誤り検査値の次回の生成方式を決定する。制御部620は、決定した生成方式の情報をグループ毎に記憶する生成方式記憶領域を有し、各グループの生成方式の情報を個別に記憶している。また、制御部620は、決定した結果に応じて誤り検査値演算部640がいずれの生成方式を用いるべきかを示す制御信号(以下、方式制御信号という)を出力する。
ここで、本実施形態において、制御部620は、主制御部の制御部520と同様に、今回生成された誤り検査値が所定の切替条件を満たす場合に、今回送信された制御コマンドが属するグループの生成方式を変更する。例えば、グループAにおいて今回の誤り検査値が方式αで生成された場合、すなわち、生成方式記憶領域の生成方式の情報が方式αの場合、次回の生成方式を方式βに決定し、生成方式記憶領域の生成方式の情報を更新する。一方、制御部620は、今回生成された誤り検査値が所定の切替条件を満たさない場合に、誤り検査値の生成方式を継続する。例えば、グループAにおいて今回の誤り検査値が方式αで生成された場合、すなわち、生成方式記憶領域の生成方式の情報が方式αの場合、次回の生成方式を方式αに決定し、生成方式記憶領域の生成方式の情報を継続する。
また、制御部620は、今回送信された制御コマンドのグループに対応する生成方式記憶領域に記憶されている生成方式の情報に基づいて、誤り検査値演算部640がいずれの生成方式を用いるべきかを示す制御信号(以下、方式制御信号という)を出力する。なお、今回送信される誤り検査値がいずれの生成方式を用いるべきかを示す生成方式の情報は、当該誤り検査値と同一のグループの誤り検査値のうち、前回送信された誤り検査値に基づいて決定されている。
制御部620の機能を実現する具体的な手段は、例えば、図4に示すサブCPU120a、サブROM120bの一部、およびサブRAM120cの一部から構成することができる。より具体的には、サブCPU120aは、サブRAM120cをワークエリアとして、今回送信された制御コマンド(コマンドデータ)、およびサブROM120bに予め記憶されているプログラムに基づき、この制御コマンドがいずれのグループに属するかを識別する。そして、識別結果に基づいて、今回誤り検査値を生成するのに用いるべき制御コマンドを特定し、コマンド制御信号を出力する。また、サブCPU120aは、サブRAM120cをワークエリアとして、今回生成された誤り検査値、およびサブROM120bに予め記憶されているプログラムに基づき、サブRAM120cの生成方式記憶領域に記憶されている生成方式の情報を更新する。
制御コマンド記憶部630は、制御部620から出力されたグループ情報に基づいて受信部600から出力された制御コマンドを記憶する。また、制御コマンド記憶部630は、制御部620から出力されたコマンド制御信号に基づいて、今回誤り検査値の生成に用いられる制御コマンドを誤り検査値演算部640に出力する。詳細には、制御コマンド記憶部630は、コマンド記憶領域を含み、このコマンド記憶領域は、グループAに属する制御コマンドを記憶するコマンド記憶領域Aと、グループBに属する制御コマンドを記憶するコマンド記憶領域Bとに分かれている。そして、制御コマンド記憶部630は、制御部620から出力されたグループ情報に基づいて、受信部600から今回出力された(今回送信された)制御コマンドをそのグループに対応するコマンド記憶領域に記憶する。
また、制御コマンド記憶部630は、制御部620から出力されたコマンド制御信号に基づいて、今回送信された制御コマンドが属するグループに対応するコマンド記憶領域に記憶されている制御コマンドのうち今回送信された制御コマンドを基準として所定の過去(本実施形態では1個前)に送信された制御コマンドを今回誤り検査値の生成に用いられる制御コマンドとして誤り検査値演算部640に出力する。
制御コマンド記憶部630の機能を実現する具体的な手段は、例えば、図4に示すサブCPU120a、サブRAM120cに設けられるコマンド記憶領域等である。より具体的には、サブCPU120aは、サブRAM120cをワークエリアとして、今回出力された制御コマンドのグループ情報、およびサブROM120bに予め記憶されているプログラムに基づき、この制御コマンドが属するグループに対応するコマンド記憶領域にこの制御コマンドを記憶する。さらに、サブCPU120aは、この制御コマンドが属するグループに対応するコマンド記憶領域に記憶されている制御コマンドのうち今回出力された制御コマンドを基準として1個前に記憶された制御コマンドを今回誤り検査値の生成に用いる制御コマンドとして取得する。
誤り検査値演算部640は、主制御部110を構成する誤り検査値演算部540と同様に、複数の誤り検査値の生成方式、本実施形態では2つの誤り検査値の生成方式(方式αおよび方式β)で誤り検査値を生成可能である。誤り検査値演算部640は、制御部620から出力された方式制御信号に基づいて、制御部620によって決定された生成方式で、制御コマンド記憶部630から出力された制御コマンドを用いて誤り検査値を生成する。さらに、誤り検査値演算部640は、生成した誤り検査値を制御部620および誤り検査部650に送る。誤り検査値演算部640の機能を実現する具体的な手段は、例えば、図4に示すサブCPU120a、サブROM120bの一部、およびサブRAM120cの一部から構成することができる。より具体的には、サブCPU120aは、サブRAM120cをワークエリアとして、方式制御信号およびサブROM120bに予め記憶されているプログラムに基づき、誤り検査値を生成し、出力する。
誤り検査部650は、受信部600から送られた今回送信された制御コマンドに付加された誤り検査値と、誤り検査値演算部640から送られた今回生成された誤り検査値とを用いて誤り検査を行う。具体的には、誤り検査部650は、上記2つの誤り検査値を照合し、同一の値であるかを検証する。同一の場合は、誤り検査部650は、今回送信された制御コマンドの正当性を認証する。非同一の場合は、誤り検査部650は、制御コマンドに正当性がなく、誤りがあると判断する。すなわち、誤り検査部650は、今回送信された誤り検査値が付加された制御コマンドの正当性を認証する認証処理を行う。なお、それぞれのグループにおいて最初に受信した制御コマンドには誤り検査値に替えて所定の初期値が付加されるので、誤り検査部650は、対応する所定の初期値を用いて誤り検査を行う。誤り検査部650の機能を実現する具体的な手段は、例えば、図4に示すサブCPU120a、サブROM120bの一部、およびサブRAM120cの一部から構成することができる。より具体的には、サブCPU120aは、サブRAM120cをワークエリアとして、今回送信された誤り検査値と、今回生成された誤り検査値とを照合して誤り検査を行う。誤り検査の結果が不一致の場合、すなわち認証不成功の場合は、サブCPU120aは、認証不成功であることを報知するための報知動作を実行させるための報知信号を、画像制御部150およびランプ制御部140に送信する。
このように構成された演出制御部120の各構成部の動作の概略を説明する。遊技機1の電源が投入され、主制御部110のメインCPU110aが初期化処理を行った後、主制御部110は制御コマンドの出力を開始し、演出制御部120に制御コマンド情報を送信する。受信部600は、制御コマンド情報を受信して、受信した制御コマンド情報の制御コマンドを誤り検査値生成部610に、誤り検査値を誤り検査部650に出力する。
誤り検査値生成部610は、今回送信された制御コマンドがいずれのグループに属するかを識別する。そして、誤り検査値生成部610は、識別結果に基づいて、制御コマンドをグループ毎に分類して記憶する。また、誤り検査値生成部610は、識別結果に基づいて、今回送信された制御コマンドと同一のグループに属する制御コマンドのうち1個前に送信された制御コマンドを用いて、予め決定している生成方式で誤り検査値を生成し誤り検査部650に出力する。また、誤り検査値生成部610は、今回生成された(誤り検査に用いられる)誤り検査値に基づいて、今回送信された制御コマンドが属するグループに関する次回の誤り検査値の生成方式を決定する。
誤り検査部650は、受信部600から出力された今回送信された制御コマンドに付加された誤り検査値と、誤り検査値生成部610から出力された今回生成された誤り検査値とを用いて誤り検査を行う。
[制御コマンドの説明]
以下、本発明の実施形態に係る遊技機1の主制御部110から演出制御部120に対して送信される制御コマンドの種別について説明する。
図8は、本実施形態に係る遊技機1を構成する主制御部110から演出制御部120へ送信される制御コマンドの種別を示す図である。なお、図8に示された制御コマンドは一例であり、本発明に係る制御コマンドはこれに限定されるものではない。以下に説明する制御コマンドは、それぞれ上述のいずれかのグループに属している。
主制御部110から演出制御部120へ送信される制御コマンドは、1コマンドが2バイトのデータで構成されており、制御コマンドの分類を識別するための1バイトの「MODE」の情報と、各制御コマンドの詳細な制御内容を示す1バイトの「DATA」の情報とから構成されている。
「演出図柄指定コマンド」は、停止表示される特別図柄の種別を示すものであり、「MODE」が「E0H」で設定され、特別図柄の種別に合わせて「DATA」の情報が設定されている。なお、特別図柄の種別が結果的に大当たりの種別や遊技状態を決定するものであるから、演出図柄指定コマンドは、大当たりの種別や、遊技状態を示すものともいえる。
この演出図柄指定コマンドは、各種の特別図柄が決定され、特別図柄の変動表示が開始されるときに、決定された特別図柄に対応する演出図柄指定コマンドが演出制御部120に送信される。具体的には、大当たりの抽選結果を判定し特別図柄各種の特別図柄が決定され特別図柄の変動表示が開始されるときに、決定された特別図柄に対応する演出図柄指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。その後、送信データ用記憶領域にセットされている演出図柄指定コマンドは、後述する制御コマンド送信処理により、誤り検査値を付加されて演出制御部120へ送信されることになる。以下、他の制御コマンドも同様にして演出制御部120へ送信される。
なお、演出図柄指定コマンド等と関連する大当たりの抽選に関する処理については後述する。
ここで、演出図柄指定コマンドのうち、「DATA」が「00H」で設定される「ハズレ演出図柄指定コマンド」は、抽選結果がハズレの場合に、ハズレの結果を停止表示させるための制御コマンドである。すなわち、ハズレ演出図柄指定コマンド、抽選結果がハズレの場合に、主制御部110から演出制御部120に必ず送信される制御コマンドである。以下、ハズレ演出図柄指定コマンドを、ハズレの際の処理を実行させるコマンドとして、単に、「ハズレコマンド」ともいう。
「第1特別図柄記憶指定コマンド」は、第1特別図柄保留数(U1)記憶領域に記憶されている保留記憶数を示すものであり、「MODE」が「E1H」で設定され、保留記憶数に合わせて「DATA」の情報が設定されている。
この第1特別図柄記憶指定コマンドは、第1特別図柄保留数(U1)記憶領域に記憶されている保留記憶数が切り替わるときに、保留記憶数に対応する第1特別図柄記憶指定コマンドが演出制御部120に送信される。具体的には、第1始動口14への入球や大当たりの抽選結果の判定に際し第1特別図柄保留数(U1)記憶領域に記憶されている値が増減したときに、増減後の保留記憶数に対応する第1特別図柄記憶指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
「第2特別図柄記憶指定コマンド」は、第2特別図柄保留数(U2)記憶領域に記憶されている保留記憶数を示すものであり、「MODE」が「E2H」で設定され、保留記憶数に合わせて「DATA」の情報が設定されている。
この第2特別図柄記憶指定コマンドは、第2特別図柄保留数(U2)記憶領域に記憶されている保留記憶数が切り替わるときに、保留記憶数に対応する第2特別図柄記憶指定コマンドが演出制御部120に送信される。具体的には、第2始動口15への入球や大当たりの抽選結果の判定に際し第2特別図柄保留数(U2)記憶領域に記憶されている値が増減したときに、増減後の保留記憶数に対応する第2特別図柄記憶指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、本実施形態では、「第1特別図柄記憶指定コマンド」と「第2特別図柄記憶指定コマンド」とをまとめて「特別図柄記憶指定コマンド」という。
「図柄確定コマンド」は、特別図柄が停止表示されていることを示すものであり、「MODE」が「E3H」で設定され、「DATA」が「00H」に設定されている。
この図柄確定コマンドは、特別図柄が停止表示されているときに演出制御部120に送信される。具体的には、大当たりの抽選結果を判定し特別図柄の変動時間が経過した後に、特別図柄を第1特別図柄表示装置20または第2特別図柄表示装置21に停止表示させるときに、図柄確定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
「電源投入時指定コマンド」は、遊技機1の電源が投入されたことを示すものであり、「MODE」が「E4H」で設定され、「DATA」が「00H」に設定されている。
この電源投入時指定コマンドは、遊技機1の電源が投入されたときに演出制御部120に送信される。遊技機1の電源が投入され主制御部110の初期化処理が行われる際に、電源遮断時(以下、「電断時」という)に生成したメインRAM110cのバックアップ情報が有効でない場合は、メインRAM110cの作業領域がクリアされ、新たに作業領域の設定が行われる。その後、電源投入時指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、電源投入時指定コマンド等と関連する初期化処理については後述する。
「RAMクリア指定コマンド」は、メインRAM110cに記憶された情報がクリアされたことを示すものであり、「MODE」が「E4H」で設定され、「DATA」が「01H」に設定されている。
遊技機1の裏側には図示しないRAMクリアボタンが設けられており、RAMクリアボタンを押下しながら遊技機1の電源を投入すると、主制御部110にシステムリセットが発生し初期化処理が行われる。そして、メインRAM110cの作業領域がクリアされ新たに作業領域の設定が行われ電源投入時指定コマンドを送信した後に、RAMクリア指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
「電源復旧指定コマンド」は、遊技機1の電源が投入されて、正常に復旧したことを示すものであり、「MODE」が「E4H」で設定され、電断時の遊技状態別に合わせて「DATA」の情報が設定されている。
この電源復旧指定コマンドは、遊技機1の電源が投入されて、正常に復旧したときに演出制御部120に送信される。具体的には、遊技機1の電源が投入され初期化処理が行われる際に、電断時に生成したメインRAM110cのバックアップ情報が有効である場合は、バックアップ情報が示す遊技状態に応じた電源復旧指定コマンドを生成し、生成した電源復旧指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、電源投入時に、電源投入時指定コマンド、RAMクリア指定コマンド、電源復旧指定コマンドのいずれか少なくとも1つが主制御部110から演出制御部120へ送信される。すなわち、「MODE」が「E4H」で設定される上記の制御コマンド群は、電源投入時の処理を実行させるコマンドである。以下、「MODE」が「E4H」で設定される上記の制御コマンド群を、単に、「電源投入コマンド」ともいう。
「デモ指定コマンド」は、第1特別図柄表示装置20または第2特別図柄表示装置21が作動していないことを示すものであり、「MODE」が「E5H」で設定され、「DATA」が「00H」に設定されている。
このデモ指定コマンドは、第1特別図柄表示装置20または第2特別図柄表示装置21の特別図柄の保留記憶がなく、遊技者による操作がない非遊技状態が所定の時間経過したときに、演出制御部120に送信される。具体的には、大当たりの抽選、特別電動役物、遊技状態の制御を行うに際し、第1特別図柄保留数(U1)記憶領域または第2特別図柄保留数(U2)記憶領域のいずれの記憶領域にも1以上のデータがセットされていない状態が所定の時間継続したときに、デモ指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、デモ指定コマンドは、第1特別図柄表示装置20または第2特別図柄表示装置21の特別図柄の保留記憶がないとき直ちに送信するようにしてもよい。この場合、演出制御部120は、デモ指定コマンドを受信した後、他の制御コマンドを所定時間受信しなかった場合、すなわち非遊技状態が所定時間経過した場合にデモ演出を実行する。
「第1特別図柄用変動パターン指定コマンド」は、第1特別図柄表示装置20における特別図柄の変動時間(変動態様)を示すものであり、「MODE」が「E6H」で設定され、各種の変動パターンに合わせて「DATA」の情報が設定されている。
この第1特別図柄用変動パターン指定コマンドは、第1特別図柄表示装置20の特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第1特別図柄用変動パターン指定コマンドが演出制御部120に送信される。具体的には、大当たりの抽選結果を判定し特別図柄の変動パターンが決定され特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第1特別図柄用変動パターン指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
「第2特別図柄用変動パターン指定コマンド」は、第2特別図柄表示装置21における特別図柄の変動時間(変動態様)を示すものであり、「MODE」が「E7H」で設定され、各種の変動パターンに合わせて「DATA」の情報が設定されている。
この第2特別図柄用変動パターン指定コマンドは、第2特別図柄表示装置21の特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第2特別図柄用変動パターン指定コマンドが演出制御部120に送信される。具体的には、大当たりの抽選結果を判定し特別図柄の変動パターンが決定され特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第2特別図柄用変動パターン指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、本実施形態では、「第1特別図柄用変動パターン指定コマンド」と「第2特別図柄用変動パターン指定コマンド」とをまとめて、「変動パターン指定コマンド」という。
ここで、変動パターン指定コマンドのうち、「DATA」が「01H」、「02H」、「03H」、「04H」、「05H」で設定される制御コマンド群は、リーチ演出を実行させる制御コマンドである。以下、「MODE」が「E6H」で設定され、かつ「DATA」が「01H」〜「05H」で設定される制御コマンド群を、単に、「リーチコマンド」ともいう。
「大入賞口開放指定コマンド」は、各種大当たりの種別に合わせた大当たりのラウンド数を示すものであり、「MODE」が「EAH」で設定され、大当たりのラウンド数に合わせて「DATA」の情報が設定されている。
この大入賞口開放指定コマンドは、大当たりラウンドが開始されるときに、開始されたラウンド数に対応する大入賞口開放指定コマンドが演出制御部120に送信される。具体的には、大当たり遊技処理において第1大入賞口開閉扉16b(または第2大入賞口開閉扉17b)を開放させるときに、開放させるときのラウンド数に対応する大入賞口開放指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、「MODE」が「EAH」で設定されるコマンド群は、大当たり中の各ラウンドに対応する処理を実行させるコマンドである。以下、「MODE」が「EAH」で設定されるコマンド群を、単に、「大当たりコマンド」ともいう。
「オープニング指定コマンド」は、各種の大当たりが開始することを示すものであり、「MODE」が「EBH」で設定され、大当たりの種別に合わせて「DATA」の情報が設定されている。
このオープニング指定コマンドは、各種の大当たりが開始するときに、大当たりの種別に対応するオープニング指定コマンドが演出制御部120に送信される。具体的には、大当たり遊技処理の開始のときに、大当たりの種別に対応するオープニング指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、「MODE」が「EBH」で設定されるコマンド群は、大当たり状態の処理を開始させるコマンドである。以下、「MODE」が「EBH」で設定されるコマンド群を、「大当たり開始コマンド」ともいう。
「エンディング指定コマンド」は、各種の大当たりが終了したことを示すものであり、「MODE」が「ECH」で設定され、大当たりの種別に合わせて「DATA」の情報が設定されている。
このエンディング指定コマンドは、各種の大当たりが終了するときに、大当たりの種別に対応するエンディング指定コマンドが演出制御部120に送信される。具体的には、大当たり遊技終了処理の開始のときに、大当たりの種別に対応するエンディング指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、「MODE」が「ECH」で設定されるコマンド群は、大当たり状態の処理を終了させるコマンドである。以下、「MODE」が「ECH」で設定されるコマンド群を、「大当たり終了コマンド」ともいう。
「遊技状態指定コマンド」は、遊技状態の内容を示すものであり、「MODE」が「EDH」で設定され、遊技状態の内容に合わせて「DATA」の情報が設定されている。
この遊技状態指定コマンドは、特別図柄の変動開始時および変動終了時に遊技状態指定コマンドが演出制御部120に送信される。具体的には、特別図柄の変動開始時および変動終了時などによって、遊技状態記憶領域や高確率遊技回数カウンタなどの現在の遊技状態を示すデータを記憶した各種記憶領域の値が変化したときに、現在の遊技状態に対応する遊技状態指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
ここで、演出図柄指定コマンド、図柄確定コマンド、および変動パターン指定コマンドは、特別図柄の変動表示が開始されるときか、または停止されるときに送信される制御コマンドであり、特別図柄の変動の際にセットで送信される制御コマンドである。以下、これらの制御コマンドをまとめて「特別図柄変動関連コマンド」ともいう。
また、大当たり開始コマンド、大当たりコマンド、および大当たり終了コマンドは、大当たり遊技処理の際にセットで送信される制御コマンドである。以下、これらの制御コマンドをまとめて「大当たり関連コマンド」ともいう。
[主制御部の制御処理]
以下、本発明の実施形態に係る遊技機1の主制御部110の制御処理について説明する。まず、主制御部110のメイン処理について説明する。
図9は、本実施形態に係る主制御部110によるメイン処理を示すフローチャートである。
まず、ステップS10において、メインCPU110aは、初期化処理を行う。この処理において、メインCPU110aは、電源投入に応じて、メインROM110bから起動プログラムを読み込むとともに、メインRAM110cに記憶されるフラグなどを初期化する処理を行う。
ステップS20において、メインCPU110aは、特別図柄の変動態様(変動時間)を決定するためのリーチ判定用乱数値および特図変動用乱数値を更新する演出用乱数値更新処理を行う。
ステップS30において、メインCPU110aは、特別図柄判定用初期乱数値、大当たり図柄用初期乱数値、小当たり図柄用初期値乱数値、普通図柄判定用初期乱数値を更新する初期乱数値更新処理を行う。その後、所定の割込処理が行われるまで、ステップS20とステップS30との処理を繰り返し行う。
次に、主制御部110の割込処理について説明する。
図10は、本実施形態に係る主制御部110による割込処理を示すフローチャートである。
メインCPU110aは、主制御部110に設けられたクロックパルス発生回路(図示せず)から出力されるクロック信号に基づいて、所定の周期(例えば、4ミリ秒)ごとに、主制御部110のタイマ割込処理を実行する。
まず、ステップS100において、メインCPU110aは、メインCPU110aのレジスタに記憶されている情報をスタック領域に退避させる。
ステップS110において、メインCPU110aは、特別図柄時間カウンタの更新処理、特別電動役物の開放時間等などの特別遊技タイマカウンタの更新処理、普通図柄時間カウンタの更新処理、普電開放時間カウンタの更新処理等の各種タイマカウンタを更新する時間制御処理を行う。具体的には、特別図柄時間カウンタ、特別遊技タイマカウンタ、普通図柄時間カウンタ、普電開放時間カウンタから1を減算する処理を行う。
ステップS120において、メインCPU110aは、特別図柄判定用乱数値、大当たり図柄用乱数値、小当たり図柄用乱数値、普通図柄判定用乱数値の乱数更新処理を行う。
具体的には、それぞれの乱数値および乱数カウンタに1を加算して更新する。なお、加算した乱数カウンタが乱数範囲の最大値を超えた場合(乱数カウンタが1周した場合)には、乱数カウンタを0に戻し、その時の初期乱数値からそれぞれの乱数値を新たに更新する。
ステップS130において、メインCPU110aは、ステップS30と同様に、特別図柄判定用初期乱数値、大当たり図柄用初期乱数値、小当たり図柄用初期値乱数値、普通図柄判定用初期乱数値を更新する初期乱数値更新処理を行う。
ステップS200において、メインCPU110aは、入力制御処理を行う。この処理において、メインCPU110aは、一般入賞口検出スイッチ12a、第1大入賞口検出スイッチ16a、第2大入賞口検出スイッチ17a、第1始動口検出スイッチ14a、第2始動口検出スイッチ15a、ゲート検出スイッチ13aの各スイッチに入力があったか否か判定する入力処理を行う。
具体的には、一般入賞口検出スイッチ12a、第1大入賞口検出スイッチ16a、第2大入賞口検出スイッチ17a、第1始動口検出スイッチ14a、第2始動口検出スイッチ15aからの各種検出信号を入力した場合には、ぞれぞれの入賞口毎に設けられた賞球のために用いる賞球カウンタに所定のデータを加算して更新する。
さらに、第1始動口検出スイッチ14aから検出信号を入力した場合には、第1特別図柄保留数(U1)記憶領域にセットされているデータが4未満であれば、第1特別図柄保留数(U1)記憶領域に1を加算し、特別図柄判定用乱数値、大当たり図柄用乱数値、小当たり図柄用乱数値、リーチ判定用乱数値および特図変動用乱数値を取得して、取得した各種乱数値を第1特別図柄乱数値記憶領域にある所定の記憶部(第0記憶部〜第4記憶部)に記憶する。
同様に、第2始動口検出スイッチ15aから検出信号を入力した場合には、第2特別図柄保留数(U2)記憶領域にセットされているデータが4未満であれば、第2特別図柄保留数(U2)記憶領域に1を加算し、特別図柄判定用乱数値、大当たり図柄用乱数値、小当たり図柄用乱数値、リーチ判定用乱数値および特図変動用乱数値を取得して、取得した各種乱数値を第2特別図柄乱数値記憶領域にある所定の記憶部(第0記憶部〜第4記憶部)に記憶する。
また、ゲート検出スイッチ13aから検出信号を入力した場合には、普通図柄保留数(G)記憶領域にセットされているデータが4未満であれば、普通図柄保留数(G)記憶領域に1を加算し、普通図柄判定用乱数値を取得して、取得した普通図柄判定用乱数値を普通図柄保留記憶領域にある所定の記憶部(第0記憶部〜第4記憶部)に記憶する。
さらに、第1大入賞口検出スイッチ16aまたは第2大入賞口検出スイッチ17aからの検出信号を入力した場合には、第1大入賞口16または第2大入賞口17に入賞した遊技球を計数するための大入賞口入球数(C)記憶領域に1を加算して更新する。
ステップS300において、メインCPU110aは、上記ステップS200での入力制御処理に基づいて、大当たりの抽選、特別電動役物、遊技状態の制御を行うための特別図柄・特別電動役物制御処理(以下、「特図特電制御処理」という)を行う。特図特電制御処理の詳細については、図11を用いて後述する。
ステップS400において、メインCPU110aは、普通図柄の抽選、普通電動役物の制御を行うための普通図柄・普通電動役物制御処理(以下、「普図普電制御処理」という)を行う。
具体的には、まず普通図柄保留数(G)記憶領域に1以上のデータがセットされているか否かを判定し、普通図柄保留数(G)記憶領域に1以上のデータがセットされていなければ、今回の普図普電制御処理を終了する。
普通図柄保留数(G)記憶領域に1以上のデータがセットされていれば、普通図柄保留数(G)記憶領域に記憶されている値から1を減算した後、普通図柄保留記憶領域にある第1記憶部〜第4記憶部に記憶された普通図柄判定用乱数値を1つ前の記憶部にシフトさせる。このとき、既に第0記憶部に書き込まれていた普通図柄判定用乱数値は上書きされて消去されることとなる。
そして、当たり判定テーブルを参照し、普通図柄保留記憶領域の第0記憶部に記憶された普通図柄判定用乱数値が「当たり」に対応する乱数値であるかどうかの判定をする処理を行う。その後、普通図柄表示装置22において普通図柄の変動表示を行って、普通図柄の変動時間が経過すると普通図柄の抽選の結果に対応する普通図柄の停止表示を行う。そして、参照した普通図柄判定用乱数値が「当たり」のものであれば、始動口開閉ソレノイド15cを駆動させ、第2始動口15を所定の開放時間、第2の態様に制御する。
ステップS500において、メインCPU110aは、払出制御処理を行う。この払出制御処理において、メインCPU110aは、ぞれぞれの賞球カウンタを参照し、各種入賞口に対応する払出個数指定コマンドを生成して、生成した払出個数指定コマンドを払出制御部130に送信する。
ステップS600において、メインCPU110aは、外部情報データ、始動口開閉ソレノイドデータ、第1大入賞口開閉ソレノイドデータ、第2大入賞口開閉ソレノイドデータ、特別図柄表示装置データ、普通図柄表示装置データ、記憶数指定コマンドのデータ作成処理を行う。
ステップS700において、メインCPU110aは、出力制御処理を行う。この処理において、ステップS600で作成した外部情報データ、始動口開閉ソレノイドデータ、第1大入賞口開閉ソレノイドデータ、第2大入賞口開閉ソレノイドデータの信号を出力させるポート出力処理を行う。
また、第1特別図柄表示装置20、第2特別図柄表示装置21および普通図柄表示装置22の各LEDを点灯させるために、上記S600で作成した特別図柄表示装置データと普通図柄表示装置データとを出力する表示装置出力処理を行う。
ステップS710において、メインCPU110aは、制御コマンド送信処理を行う。
具体的には、メインCPU110aは、メインRAM110cの送信データ用記憶領域にセットされている制御コマンドに誤り検査値(または初期値)を付加して制御コマンド情報を生成し、生成した制御コマンド情報を演出制御部120に送信する。この制御コマンド送信処理の詳細については図13を用いて後述する。
ステップS800において、メインCPU110aは、ステップS100で退避した情報をメインCPU110aのレジスタに復帰させる。
次に、主制御部110の特図特電制御処理を説明する。
図11は、本実施形態に係る主制御部110による特図特電制御処理を示すフローチャートである。
ステップS301において、メインCPU110aは、特図特電処理データの値を読み込む。この「特図特電処理データ」は、特図特電制御処理の各サブルーチンが記憶された記憶領域のアドレスにそれぞれ割り当てられた値であり、特図特電処理データを参照することで、どのサブルーチンを処理するかを識別することができる。そして、特図特電処理データは、後述するように特図特電制御処理の各サブルーチンの中で必要に応じてセットされていき、その遊技において必要なサブルーチンが適宜処理されていくことになる。
ステップS302において、メインCPU110aは、読み込んだ特図特電処理データから分岐アドレスを参照し、特図特電処理データ=0であれば特別図柄記憶判定処理(ステップS310)に処理を移し、特図特電処理データ=1であれば特別図柄変動処理(ステップS320)に処理を移し、特図特電処理データ=2であれば特別図柄停止処理(ステップS330)に処理を移し、特図特電処理データ=3であれば大当たり遊技処理(ステップS340)に処理を移し、特図特電処理データ=4であれば大当たり遊技終了処理(ステップS350)に処理を移し、特図特電処理データ=5であれば小当たり遊技処理(ステップS360)に処理を移す。
ステップS310の特別図柄記憶判定処理においては、メインCPU110aは、大当たり判定処理、停止表示する特別図柄の決定をする特別図柄決定処理、特別図柄の変動時間を決定する変動時間決定処理等を行う。ここで、図12を用いて、特別図柄記憶判定処理の具体的な内容を説明する。
図12は、本実施形態に係る主制御部110による特別図柄記憶判定処理におけるフローチャートである。
ステップS311において、メインCPU110aは、第1特別図柄保留数(U1)記憶領域または第2特別図柄保留数(U2)記憶領域に1以上のデータがセットされているか否かを判定する。
そして、第1特別図柄保留数(U1)記憶領域または第2特別図柄保留数(U2)記憶領域のいずれの記憶領域にも1以上のデータがセットされていなければ、特図特電処理データ=0を保持したまま、今回の特別図柄変動処理を終了する。
一方、第1特別図柄保留数(U1)記憶領域または第2特別図柄保留数(U2)記憶領域に1以上のデータがセットされていれば、ステップS312に処理を移す。
ステップS312において、メインCPU110aは、大当たり判定処理を行う。
具体的には、第2特別図柄保留数(U2)記憶領域に1以上のデータがセットされている場合には、第2特別図柄保留数(U2)記憶領域に記憶されている値から1を減算した後、第2特別図柄乱数値記憶領域にある第1記憶部〜第4記憶部に記憶された各種乱数値を1つ前の記憶部にシフトさせる。このとき、既に第0記憶部に書き込まれていた各種乱数値は上書きされて消去されることとなる。そして、大当たり判定テーブルを参照して、第2特別図柄乱数値記憶領域の第0記憶部に記憶された特別図柄判定用乱数値が「大当たり」に対応する乱数値であるか、「小当たり」に対応する乱数値であるかの判定を行う。
また、第2特別図柄保留数(U2)記憶領域に1以上のデータがセットされておらず、第1特別図柄保留数(U1)記憶領域に1以上のデータがセットされている場合には、第1特別図柄保留数(U1)記憶領域に記憶されている値から1を減算した後、第1特別図柄乱数値記憶領域にある第1記憶部〜第4記憶部に記憶された各種乱数値を1つ前の記憶部にシフトさせる。このときにも、既に第0記憶部に書き込まれていた各種乱数値は上書きされて消去されることとなる。そして、大当たり判定テーブルを参照して、第1特別図柄乱数値記憶領域の第0記憶部に記憶された特別図柄判定用乱数値が「大当たり」に対応する乱数値であるか、「小当たり」に対応する乱数値であるかの判定を行う。
本実施形態では、第1特別図柄乱数値記憶領域よりも第2特別図柄乱数値記憶領域に記憶された乱数値が優先してシフト(消化)されることになる。しかしながら、始動口に入賞した順序で、第1特別図柄記憶領域または第2特別図柄記憶領域をシフトさせてもよいし、第1特別図柄記憶領域を第2特別図柄記憶領域よりも優先させてシフトさせてもよい。
ステップS313において、メインCPU110aは、停止表示する特別図柄の種類を決定するための特別図柄決定処理を行う。
この特別図柄決定処理では、上記大当たり判定処理(ステップS312)において「大当たり」と判定された場合には、図柄決定テーブルを参照して、第1特別図柄乱数値記憶領域の第0記憶部に記憶された大当たり図柄用乱数値に基づいて大当たり図柄(特別図柄1〜特別図柄6)を決定する。また、上記大当たり判定処理(ステップS312)において「小当たり」と判定された場合には、図柄決定テーブルを参照して、第1特別図柄乱数値記憶領域の第0記憶部に記憶された小当たり図柄用乱数値に基づいて小当たり図柄(特別図柄A、特別図柄B)を決定する。また、上記大当たり判定処理(ステップS312)において「ハズレ」と判定された場合には、図柄決定テーブルを参照して、ハズレ図柄(特別図柄0)を決定する。
そして、決定した特別図柄に対応する停止図柄データを停止図柄データ記憶領域に記憶する。
ステップS314において、メインCPU110aは、特別図柄の変動時間決定処理を行う。
具体的には、変動パターン決定テーブルを参照して、第1特別図柄乱数値記憶領域の第0記憶部に記憶されたリーチ判定用乱数値および特図変動用乱数値に基づいて、特別図柄の変動パターンを決定する。その後、決定した特別図柄の変動パターンに対応する特別図柄の変動時間を決定する。そして、決定した特別図柄の変動時間に対応するカウンタを特別図柄時間カウンタにセットする処理を行う。
ステップS315において、メインCPU110aは、第1特別図柄表示装置20または第2特別図柄表示装置21に特別図柄の変動表示(LEDの点滅)を行わせるための変動表示データを所定の処理領域にセットする。これにより、所定の処理領域に変動表示データがセットされていると、上記ステップS600でLEDの点灯または消灯のデータが適宜作成され、作成されたデータがステップS700において出力されることで、第1特別図柄表示装置20または第2特別図柄表示装置21の変動表示が行われる。
さらに、メインCPU110aは、特別図柄の変動表示が開始されるときに、上記ステップS314で決定された特別図柄の変動パターンに対応する特別図柄の変動パターン指定コマンド(第1特別図柄用変動パターン指定コマンドまたは第2特別図柄用変動パターン指定コマンド)をメインRAM110cの送信データ用記憶領域にセットする。
ステップS316において、メインCPU110aは、特図特電処理データ=0から特図特電処理データ=1にセットして、特別図柄変動処理のサブルーチンに移す準備を行い、特別図柄記憶判定処理を終了する。
再び、図11に示す特図特電制御処理について説明を戻すことにする。
ステップS320の特別図柄変動処理においては、メインCPU110aは、特別図柄の変動時間が経過したか否かを判定する処理を行う。
具体的には、ステップS314で決定された特別図柄の変動時間が経過したか(特別図柄時間カウンタ=0)否かを判定し、特別図柄の変動時間が経過していないと判定した場合には、特図特電処理データ=1を保持したまま、今回の特別図柄変動処理を終了する。なお、上記ステップS314でセットされた特別図柄の変動時間のカウンタは、上記ステップS110において減算処理されていく。
特別図柄の変動時間が経過したと判定すれば、上記ステップS313で決定された特別図柄を第1特別図柄表示装置20または第2特別図柄表示装置21に停止表示させる。これにより、第1特別図柄表示装置20または第2特別図柄表示装置21に特別図柄が停止表示され、遊技者に大当たりの判定結果が報知されることとなる。
また、高確率遊技回数(X)>0のときには高確率遊技回数(X)カウンタから1を減算して更新し、高確率遊技回数(X)=0となれば、高確率遊技フラグをクリアする。
最後に、特図特電処理データ=1から特図特電処理データ=2にセットして、特別図柄停止処理のサブルーチンに移す準備を行い、特別図柄変動処理を終了する。
ステップS330の特別図柄停止処理においては、メインCPU110aは、停止表示された特別図柄が「大当たり図柄」であるか、「小当たり図柄」であるか、「ハズレ図柄」であるかを判定する処理を行う。
そして、大当たり図柄と判定された場合には、遊技状態記憶領域に記憶されているデータを参照し、現在の遊技状態を示すデータを遊技状態バッファにセットする。その後に、遊技状態記憶領域(高確率遊技フラグ記憶領域等)に記憶されているデータ(高確率遊技フラグ)、高確率遊技回数(X)カウンタをクリアする。さらに、特図特電処理データ=2から特図特電処理データ=3にセットして、大当たり遊技処理のサブルーチンに移す準備を行い、特別図柄停止処理を終了する。
また、小当たり図柄と判定された場合には、遊技状態記憶領域に記憶されているデータはクリアせずに、特図特電処理データ=2から特図特電処理データ=5にセットして、小当たり遊技処理のサブルーチンに移す準備を行い、特別図柄停止処理を終了する。
一方、ハズレ図柄と判定された場合には、特図特電処理データ=2から特図特電処理データ=0にセットして、特別図柄記憶判定処理のサブルーチンに移す準備を行い、特別図柄停止処理を終了する。
ステップS340の大当たり遊技処理においては、メインCPU110aは、上記長当たりまたは短当たりのいずれの大当たりを実行させるかを決定し、決定した大当たりを制御する処理を行う。
具体的には、まず、特別電動役物作動態様決定テーブルを参照し、上記ステップS313で決定された大当たり図柄の種類(停止図柄データ)に基づいて、大当たりの開放態様を決定する。
次に、決定した大当たりの開放態様を実行させるために、大入賞口開放態様テーブルを参照し、大当たりの種類に応じた開放時間を特別遊技タイマカウンタにセットするとともに、第1大入賞口開閉ソレノイド16c(または第2大入賞口開閉ソレノイド17c)の駆動データを出力して第1大入賞口開閉扉16b(または第2大入賞口開閉扉17b)を開放させる。このとき、ラウンド遊技回数(R)記憶領域に1を加算する。
この開放中に規定個数の遊技球が入球するか、大入賞口の開放時間が経過すると(大入賞口入球数(C)=9または特別遊技タイマカウンタ=0である)と、第1大入賞口開閉ソレノイド16c(または第2大入賞口開閉ソレノイド17c)の駆動データの出力を停止して第1大入賞口開閉扉16b(または第2大入賞口開閉扉17b)を閉鎖させる。これにより、1回のラウンド遊技が終了する。このラウンド遊技の制御を繰り返し15回行う。
15回のラウンド遊技が終了すると(ラウンド遊技回数(R)=15)、ラウンド遊技回数(R)記憶領域および大入賞口入球数(C)記憶領域に記憶されているデータをクリアするとともに、特図特電処理データ=3から特図特電処理データ=4にセットして、大当たり遊技終了処理のサブルーチンに移す準備を行い、大当たり遊技処理を終了する。
ステップS350の大当たり遊技終了処理においては、メインCPU110aは、高確率遊技状態または低確率遊技状態のいずれかの確率遊技状態を決定する処理を行う。
具体的には、大当たり遊技終了時設定データテーブルを参照し、遊技状態バッファに記憶されているデータと上記ステップS313で決定された大当たり図柄の種類(停止図柄データ)とに基づいて、高確率遊技フラグの設定、高確率遊技回数(X)の設定を行う。例えば、特別図柄1であれば、高確率遊技フラグ記憶領域に高確率遊技フラグをセットし、高確率遊技回数(X)カウンタに10000回をセットする。
その後、特図特電処理データ=4から特図特電処理データ=0にセットして、特別図柄記憶判定処理のサブルーチンに移す準備を行い、大当たり遊技終了処理を終了する。
ステップS360の小当たり遊技処理においては、メインCPU110aは、まず、特別電動役物作動態様決定テーブルを参照し、上記ステップS313で決定された小当たり図柄の種類(停止図柄データ)に基づいて、小当たりの開放態様を決定する。
次に、決定した小当たりの開放態様を実行させるために、大入賞口開放態様テーブルを参照し、小当たりの開放時間を特別遊技タイマカウンタにセットするとともに、第2大入賞口開閉ソレノイド17cの駆動データを出力して第2大入賞口開閉扉17bを開放させる。このとき、開放回数(K)記憶領域に1を加算する。
小当たりの開放時間が経過する(特別遊技タイマカウンタ=0)と、第2大入賞口開閉ソレノイド17cの駆動データの出力を停止して第2大入賞口開閉扉17bを閉鎖させる。この第2大入賞口開閉扉17bの開閉制御を繰り返し15回行う。
そして、第2大入賞口開閉扉17bの開閉制御が15回行われるか、第2大入賞口17に規定個数の遊技球が入球する(開放回数(K)=15または大入賞口入球数(C)=9である)と、小当たり遊技を終了させるため、第2大入賞口開閉ソレノイド17cの駆動データの出力を停止させ、開放回数(K)記憶領域および大入賞口入球数(C)記憶領域に記憶されているデータをクリアするとともに、特図特電処理データ=5から特図特電処理データ=0にセットして、特別図柄記憶判定処理のサブルーチンに移す準備を行い、小当たり遊技処理を終了する。
次に、主制御部110の制御コマンド送信処理を説明する。
図13は、本実施形態に係る主制御部110による制御コマンド送信処理を示すフローチャートである。
図9の主制御部110のメイン処理のステップS10の初期化処理における制御コマンド送信処理のタイミングや、主制御部110のタイマ割込み処理のステップS710の制御コマンド送信処理のタイミングになったら、ステップS711において、制御コマンド出力部500は、今回送信される制御コマンドが送信データ用記憶領域にセットされているかを参照することで、制御コマンドの送信タイミングかを判断する。制御コマンドがセットされている場合は、制御コマンド出力部500は、制御コマンドの送信タイミングであると判断する。そして、制御コマンド出力部500は、当該制御コマンドを誤り検査値生成部510の制御部520および制御コマンド記憶部530ならびに付加部550に出力し、ステップS712へと進む。制御コマンドがセットされていない場合は、制御コマンドの送信タイミングではないと判断し、制御コマンド送信処理を終了する。具体的には、メインCPU110aは、メインRAM110cの送信データ用記憶領域に、今回送信される制御コマンドが記憶されている場合、制御コマンドの送信タイミングであると判断し、当該制御コマンドを取得する。
続いて、ステップS712において、制御部520は、制御コマンド出力部500が今回出力した制御コマンド、すなわち今回送信される制御コマンドを取得し、この制御コマンドがいずれのグループに属するかを識別する。さらに、この識別結果をグループ情報として制御コマンド記憶部530に出力する。
続いて、ステップS713において、制御コマンド記憶部530は、制御コマンド出力部500が今回出力した制御コマンドを取得する。そして、制御部520によって出力されたグループ情報に基づいて、この取得した制御コマンドを、これが属するグループに対応するコマンド記憶領域に記憶する。具体的には、メインCPU110aは、メインRAM110cのコマンド記憶領域に今回送信される制御コマンドを記憶する。この際に、メインCPU110aは、この制御コマンドが属するグループの識別結果に対応するコマンド記憶領域に記憶する。すなわち、メインCPU110aは、制御コマンドがグループAに属する場合はメインRAM110cのコマンド記憶領域Aに記憶し、制御コマンドがグループBに属する場合はメインRAM110cのコマンド記憶領域Bに記憶する。
続いて、ステップS714において、先ず、制御部520は、すでに取得した今回送信される制御コマンドに基づいて、制御コマンド記憶部530にいずれの制御コマンドを出力させるかを判断し、判断結果に応じたコマンド制御信号を制御コマンド記憶部530に出力する。そして、制御コマンド記憶部530は、制御部520によって出力されたコマンド制御信号に基づいて、今回誤り検査値の生成に用いるべき制御コマンドを誤り検査値演算部540に出力する。すなわち、制御コマンド記憶部530は、今回送信される制御コマンドと同一のグループに属する制御コマンドのうち今回記憶した制御コマンドの1個前に記憶した制御コマンド(すなわち、今回送信される制御コマンドの1個前に送信された制御コマンド)を誤り検査値演算部540へ出力する。誤り検査値演算部540は、制御コマンド記憶部530から今回誤り検査値の生成に用いる制御コマンドを取得する。
続いて、ステップS715において、先ず、制御部520は、予め決定している生成方式で誤り検査値演算部540に誤り検査値を生成させるために、方式制御信号を誤り検査値演算部540に出力する。具体的には、制御部520は、今回送信される制御コマンドが属するグループに対応する生成方式記憶領域を参照して、予め決定している生成方式に関する情報に基づく方式制御信号を出力する。そして、誤り検査値演算部540は、方式制御信号に応じた生成方式で、取得した制御コマンドを用いて誤り検査値を生成する。そして、誤り検査値演算部540は、生成した誤り検査値を制御部520および付加部550へと出力する。
続いて、ステップS716において、制御部520は、取得した今回送信される誤り検査値と、生成方式記憶領域に記憶されている生成方式(今回の生成方式)の情報とに基づいて、今回送信される制御コマンドが属するグループの次回の誤り検査値の生成方式を決定する。例えば、今回送信される制御コマンドがグループAに属し、今回送信される誤り検査値が所定の切替条件を満たし、グループAに関する生成方式が方式αに設定されている(すなわち、今回の生成方式が方式αである)場合、制御部520は、グループAに関する次回の生成方式を方式βに決定する。また、例えば、今回送信される制御コマンドがグループAに属し、今回送信される誤り検査値が所定の切替条件を満たさず、グループAに関する生成方式が方式αに設定されている場合、制御部520は、グループAに関する次回の生成方式を方式αに決定する。
続いて、ステップS717において、制御部520は、ステップS716で決定した生成方式を記憶する。具体的には、制御部520は、決定した結果に応じた誤り検査値の生成方式の情報を生成方式記憶領域に記憶する。記憶された生成方式の情報は、次回以降の制御コマンド送信処理のステップS715、S716を実行する際に用いられる。
続いて、ステップS718において、付加部550は、制御コマンド出力部500から出力された今回送信される制御コマンドに、誤り検査値演算部540から出力された今回生成された誤り検査値を付加して制御コマンド情報を生成し、送信部560に出力する。
続いて、ステップS719において、送信部560は、付加部550が生成した制御コマンド情報を受け取って演出制御部120に送信した後、本フローチャートによる処理を終了する。
なお、今回送信する制御コマンドを記憶するステップS713は、ステップS712以降であればどこで行ってもよい。例えば、ステップS714の今回誤り検査値を生成する制御コマンドを取得するステップの後に行ってもよく、この場合、制御コマンド記憶部は各グループに1つずつの制御コマンドのみを記憶しておけばよい。
[演出制御部の制御処理]
以下、本発明の実施形態に係る遊技機1の演出制御部120の制御処理について説明する。まず、演出制御部120のメイン処理について説明する。
図14は、本実施形態に係る演出制御部120によるメイン処理を示すフローチャートである。
ステップS1000において、サブCPU120aは、初期化処理を行う。この処理において、サブCPU120aは、電源投入に応じて、サブROM120bからメイン処理に関するプログラムコードを読み込む。これとともに、サブCPU120aは、サブRAM120cに記憶されるフラグなどを初期化し、所定値に設定する処理を行う。この処理が終了した場合には、ステップS1100へ処理を移す。
ステップS1100において、サブCPU120aは、演出用乱数更新処理を行う。この処理において、サブCPU120aは、サブRAM120cに記憶される演出用乱数値、演出図柄決定用乱数、演出モード決定用乱数等を更新する処理を行う。以降は、所定の割込処理が行われるまで、上記ステップS1100の処理を繰り返し行う。
次に、演出制御部120の割込処理について説明する。
図15は、演出制御部120による割込処理の手順の一例を示すフローチャートである。サブCPU120aは、演出制御部120に設けられたクロックパルス発生回路(図示せず)から出力されるクロック信号に基づいて、所定の周期(例えば4ミリ秒)ごとに、演出制御部120のタイマ割込処理を実行する。
ステップS1200において、サブCPU120aは、サブCPU120aのレジスタに記憶されている情報をスタック領域に退避させる。
ステップS1300において、サブCPU120aは、演出制御部120で用いられる各種タイマカウンタの更新処理を行う。
ステップS1500において、演出制御部120は、コマンド解析処理を行う。この処理において、演出制御部120は、受信データ用記憶領域に書き込まれた制御コマンドの種別を解析する処理を行う。なお、コマンド解析処理の詳細については後述する。
ステップS1600において、サブCPU120aは、演出ボタン検出スイッチ35aの信号のチェックを行い、演出ボタン35からの入力に関する演出用入力制御処理を行う。
ステップS1700において、サブCPU120aは、サブRAM120cの送信データ用記憶領域にセットされた制御コマンドや各種データを、ランプ制御部140や画像制御部150へ送信するための処理である演出用出力制御処理を行う。
ステップS1800において、サブCPU120aは、ステップS1200で退避した情報をサブCPU120aのレジスタに復帰させる。
次に、演出制御部120のコマンド解析処理について説明する。
図16および図17は、本実施形態に係る演出制御部120によるコマンド解析処理を示すフローチャートである。なお、図17のコマンド解析処理2は、図16のコマンド解析処理1に引き続いて行われるものである。
ステップS1501において、サブCPU120aは、受信部600の受信データ用記憶領域に制御コマンド情報が記憶されているか否かを確認して、制御コマンド情報を受信したか否かを判定する。
サブCPU120aは、受信データ用記憶領域に制御コマンド情報が記憶されていなければコマンド解析処理を終了し、受信データ用記憶領域に制御コマンド情報が記憶されていればステップS2000に処理を移す。
ステップS2000において、サブCPU120aは、受信データ用記憶領域に記憶された制御コマンド情報から誤り検査値を取得する。また、サブCPU120aは、取得した制御コマンドがいずれのグループに属するかを識別する。そして、サブCPU120aは、識別結果に基づいて誤り検査値の生成に用いる制御コマンドを特定し、特定した制御コマンドを用いて予め決定している生成方式で誤り検査値を生成する。また、サブCPU120aは、この誤り検査値に応じて、今回送信された制御コマンドが属するグループの次回の誤り検査値の生成方式を決定する。そして、サブCPU120aは、取得した誤り検査値と、生成した誤り検査値とを照合して、今回受信した制御コマンドの正当性を認証する認証処理を行う。この認証処理の詳細については図18を用いて後に詳述する。認証処理が終了したらステップS1510へ進む。
ステップS1510において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、デモ指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドがデモ指定コマンドであれば、ステップS1511に処理を移し、デモ指定コマンドでなければステップS1520に処理を移す。
ステップS1511において、サブCPU120aは、デモ演出パターンを決定するデモ演出パターン決定処理を行う。
具体的には、デモ演出パターンを決定し、決定したデモ演出パターンを演出パターン記憶領域にセットするとともに、決定したデモ演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定したデモ演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
ステップS1520において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、特別図柄記憶指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが特別図柄記憶指定コマンドであれば、ステップS1521に処理を移し、特別図柄記憶指定コマンドでなければステップS1530に処理を移す。
ステップS1521において、サブCPU120aは、特別図柄記憶指定コマンドを解析して、液晶表示装置31に表示させる特別図柄の保留画像(以下、「特図保留画像」という)の表示個数を決定するとともに、決定した特図保留画像の表示個数に対応する特図表示個数指定コマンドを画像制御部150とランプ制御部140に送信する特別図柄記憶数決定処理を行う。
ステップS1530において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、演出図柄指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが演出図柄指定コマンドであれば、ステップS1531に処理を移し、演出図柄指定コマンドでなければステップS1540に処理を移す。
ステップS1531において、サブCPU120aは、受信した演出図柄指定コマンドの内容に基づいて、液晶表示装置31に停止表示させる演出図柄36を決定する演出図柄決定処理を行う。
具体的には、演出図柄指定コマンドを解析して、大当たりの有無、大当たりの種別に応じて演出図柄36の組み合わせを構成する演出図柄データを決定し、決定された演出図柄データを演出図柄記憶領域にセットするとともに、演出図柄データを画像制御部150とランプ制御部140に送信するため、演出図柄データを示す停止図柄指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
ステップS1532において、サブCPU120aは、上記ステップ1100において更新されている演出モード決定用乱数値から1つの乱数値を取得し、取得した演出モード決定用乱数値と受信した演出図柄指定コマンドに基づいて、複数の演出モード(例えば、ノーマル演出モードやチャンス演出モード)の中から1つの演出モードを決定する演出モード決定処理を行う。また、決定した演出モードは、演出モード記憶領域にセットされる。
ステップS1540において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、変動パターン指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが変動パターン指定コマンドであれば、ステップS1541に処理を移し、変動パターン指定コマンドでなければステップS1550に処理を移す。
ステップS1541において、サブCPU120aは、上記ステップS1100(図14参照)において更新されている演出用乱数値から1つの乱数値を取得し、取得した演出用乱数値、受信した変動パターン指定コマンドおよび演出モード記憶領域にセットされている演出モードに基づいて、複数の変動演出パターンの中から1つの変動演出パターンを決定する変動演出パターン決定処理を行う。
具体的には、ノーマル演出モードであれば、変動演出パターン決定テーブルを参照し、取得した演出用乱数値に基づいて1つの変動演出パターンを決定し、決定した変動演出パターンを演出パターン記憶領域にセットするとともに、決定した変動演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定した変動演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
その後、かかる演出パターンに基づいて、液晶表示装置31、音声出力装置32、演出用駆動装置33、演出用照明装置34が制御されることになる。なお、ここで決定した変動演出パターンに基づいて、演出図柄36の変動態様が決定されることとなる。
ステップS1550において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、図柄確定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが図柄確定コマンドであれば、ステップS1551に処理を移し、図柄確定コマンドでなければステップS1560に処理を移す。
ステップS1551において、サブCPU120aは、演出図柄36を停止表示させるために、演出図柄を停止表示させるための停止指定コマンドをサブRAM120cの送信データ用記憶領域にセットする演出図柄停止表示処理を行う。
ステップS1560において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、遊技状態指定コマンドであるか否かを判定する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが遊技状態指定コマンドであればステップS1561に処理を移し、遊技状態指定コマンドでなければステップS1570に処理を移す。
ステップS1561において、サブCPU120aは、受信した遊技状態指定コマンドに基づいた遊技状態を示すデータをサブRAM120cにある遊技状態記憶領域にセットする。
ステップS1570において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、オープニング指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドがオープニング指定コマンドであればステップS1571に処理を移し、オープニング指定コマンドでなければステップS1580に処理を移す。
ステップS1571において、サブCPU120aは、当たり開始演出パターンを決定する当たり開始演出パターン決定処理を行う。
具体的には、オープニング指定コマンドに基づいて当たり開始演出パターンを決定し、決定した当たり開始演出パターンを演出パターン記憶領域にセットするとともに、決定した当たり開始演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定した当たり開始演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
ステップS1580において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、大入賞口開放指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが大入賞口開放指定コマンドであればステップS1581に処理を移し、大入賞口開放指定コマンドでなければステップS1590に処理を移す。
ステップS1581において、サブCPU120aは、大当たり演出パターンを決定する大当たり演出パターン決定処理を行う。
具体的には、大入賞口開放指定コマンドに基づいて大当たり演出パターンを決定し、決定した大当たり演出パターンを演出パターン記憶領域にセットするとともに、決定した大当たり演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定した大当たり演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
ステップS1590において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、エンディング指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドがエンディング指定コマンドであればステップS1591に処理を移し、エンディング指定コマンドでなければステップS1600(図15参照)に処理を移す。
ステップS1591において、サブCPU120aは、当たり終了演出パターンを決定する当たり終了演出パターン決定処理を行う。
具体的には、エンディング指定コマンドに基づいて当たり終了演出パターンを決定し、決定した当たり終了演出パターンを演出パターン記憶領域にセットするとともに、決定した当たり終了演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定した当たり終了演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。本処理を終了すると、コマンド解析処理が終了する。
以下、図16に示す、ステップS2000の演出制御部120による認証処理について、図18に示すフローチャートを参照して説明する。図18は、演出制御部120による認証処理の手順の一例を示すフローチャートである。
図16に示す、演出制御部120のコマンド解析処理において認証処理の処理タイミングになったら、ステップS2001において、演出制御部120の受信部600は、受信データ用記憶領域に記憶されている制御コマンド情報から制御コマンドおよび誤り検査値を取得する。また、受信部600は、今回受信した制御コマンドを制御部620および制御コマンド記憶部630へ、取得した誤り検査値を誤り検査部650へと出力する。
続いて、ステップS2002において、制御部620は、今回送信された制御コマンドを取得し、この制御コマンドがいずれのグループに属するかを識別する。さらに、この識別結果をグループ情報として制御コマンド記憶部630に出力する。
続いて、ステップS2003において、制御コマンド記憶部630は、今回送信された制御コマンドを取得する。そして、制御部620によって出力されたグループ情報に基づいて、この取得した制御コマンドを、これが属するグループに対応するコマンド記憶領域に記憶する。具体的には、サブCPU120aは、この制御コマンドが属するグループの識別結果に対応するサブRAM120cのコマンド記憶領域に記憶する。より具体的には、サブCPU120aは、制御コマンドがグループAに属する場合はサブRAM120cのコマンド記憶領域Aに記憶し、制御コマンドがグループBに属する場合はサブRAM120cのコマンド記憶領域Bに記憶する。
続いて、ステップS2004において、先ず、制御部620は、すでに取得した今回送信された制御コマンドに基づいて、制御コマンド記憶部630にいずれの制御コマンドを出力させるかを判断し、判断結果に応じたコマンド制御信号を制御コマンド記憶部630に出力する。そして、制御コマンド記憶部630は、制御部620によって出力されたコマンド制御信号に基づいて、今回誤り検査値の生成に用いるべき制御コマンドを誤り検査値演算部640に出力する。すなわち、制御コマンド記憶部630は、今回送信された制御コマンドと同一のグループに属する制御コマンドのうち今回記憶した制御コマンドの1個前に記憶した制御コマンド(すなわち、今回送信された制御コマンドの1個前に送信された制御コマンド)を誤り検査値演算部640へ出力する。誤り検査値演算部640は、制御コマンド記憶部630から今回誤り検査値の生成に用いる制御コマンドを取得する。
続いて、ステップS2005において、先ず、制御部620は、予め決定している生成方式で誤り検査値演算部640に誤り検査値を生成させるために、方式制御信号を誤り検査値演算部640に出力する。具体的には、制御部620は、今回送信された制御コマンドが属するグループに対応する生成方式記憶領域を参照して、予め決定している生成方式に関する情報に基づく方式制御信号を出力する。そして、誤り検査値演算部640は、方式制御信号に応じた生成方式で、取得した制御コマンドを用いて誤り検査値を生成する。そして、誤り検査値演算部640は、生成した誤り検査値を誤り検査部650へと出力する。
続いて、ステップS2006において、制御部620は、すでに取得した今回生成した誤り検査値と、生成方式記憶領域に記憶されている生成方式(今回の生成方式)の情報とに基づいて、今回送信された制御コマンドが属するグループの次回の誤り検査値の生成方式を決定する。例えば、今回送信された制御コマンドがグループAに属し、今回生成した誤り検査値が所定の切替条件を満たし、グループAに関する生成方式が方式αに設定されている(すなわち、今回の生成方式が方式αである)場合、制御部620は、グループAに関する次回の生成方式を方式βに決定する。また、例えば、今回送信された制御コマンドがグループAに属し、今回生成した誤り検査値が所定の切替条件を満たさず、グループAに関する生成方式が方式αに設定されている場合、制御部620は、グループAに関する次回の生成方式を方式αに決定する。
続いて、ステップS2007において、制御部620は、決定した生成方式を記憶する。具体的には、制御部620は、決定した結果に応じた誤り検査値の生成方式の情報を生成方式記憶領域に記憶する。記憶された生成方式の情報は、次回以降の認証処理のステップS2005、S2006を実行する際に用いられる。
続いて、ステップS2008において、誤り検査部650は、ステップS2001で取得した誤り検査値と、誤り検査値生成部610が今回生成した誤り検査値とを照合し、誤り検査を行う。
続いて、ステップS2009において、誤り検査の結果、2つの誤り検査値が同一の場合は、誤り検査部650は、検査結果が正しいので、今回送信された制御コマンドの正当性の認証が成功であると判断し(ステップS2009の結果がYES)、本フローチャートによる処理を終了する。非同一の場合は、誤り検査部650は、検査結果が正しくないので、制御コマンドに正当性がなく、認証が不成功であると判断し(ステップS2009の結果がNO)、ステップS2008へと進み、誤り検出の報知を行い、本フローチャートによる処理を終了する。
ステップS2010において、演出制御部120は、不正行為や通信エラーが発生したおそれがあると判断して、その旨を報知する為に報知信号を出力する。演出制御部120は、生成した報知信号を、例えば、画像制御部150やランプ制御部140、あるいは遊技機1を管理するセンター制御装置などへ送信する。画像制御部150やランプ制御部140等は、受信した報知信号に基づいて、遊技機1で不正行為や通信エラーが発生したおそれがある旨を報知する演出を実行する。この演出は、例えば、液晶表示装置31に通常出現しないキャラクタを出現させたり、通常出現するキャラクタを通常とは異なる方法で出現させるなどである。また、液晶表示装置31の輝度を変えたり、色を変えたり、ランプ制御部140に対して所定のランプを表示制御するようにしてもよい。また、音声出力装置32からアラーム音などの特別な音声を出力するなど、画像制御部150に対して所定の音声を出力する音声制御をするようにしてもよい。いずれにせよ、遊技店の従業員が当該遊技機1の前を通過した際に、その状態に気付くようにしてあればよい。また、この演出は、顧客がその状態に気付かないような演出でもよく、また、顧客が容易に気付く演出であってもよい。顧客が容易に気付く演出にすれば、不正行為を効率的に抑止することができる。
また、報知信号に「大当たり中」や「確率変動中」などの遊技機1の遊技状態に関する情報を含めてもよい。これらの遊技状態に関する情報に基づいて、遊技機1を管理するセンター制御装置などによって不正行為が行われているか否かの判断を行ってもよい。例えば、大当たり中や確率変動中は入賞が集中していても正常である場合がある。よって、大当たり中や確率変動中は、その他の状態とは異なる条件で不正行為のおそれがあるか否かについて判断するのがよい。また、遊技状態に関する情報は、報知信号に含めずに別信号として出力するようにしてもよい。この場合、従業員は、報知信号と遊技状態に関する情報の両方に基づいて、不正行為のおそれがあるか否かについて判断する。
ここで、今回受信した制御コマンドを記憶するステップS2003は、ステップS2002以降であればどこで行ってもよい。例えば、ステップS2004の今回誤り検査値を生成する制御コマンドを取得するステップの後に行ってもよく、この場合、制御コマンド記憶部630は各グループに1つずつの制御コマンドのみを記憶しておけばよい。
なお、主制御部110と払出制御部130との間で認証処理を行う場合も、主制御部110と演出制御部120との間の認証処理とほぼ同様の手順で行われるため説明を省略する。
以上のように、本実施形態では、主制御部110は、制御コマンドをグループに分類して記憶している。そして主制御部110は、今回送信する制御コマンドがいずれのグループに属するかを識別し、この制御コマンドと同じグループに属する制御コマンドのうち、この制御コマンドの1つ前に送信した制御コマンドを用いて誤り検査値を生成する。そして、生成した誤り検査値を今回送信する制御コマンドに付加して制御コマンド情報として演出制御部120に送信する。さらに、主制御部110は、今回送信する誤り検査値に応じて、当該誤り検査値が付加される制御コマンドが属するグループの次回の生成方式を決定する。一方、演出制御部120は、制御コマンドをグループに分類して記憶している。そして演出制御部120は、今回受信した制御コマンドがいずれのグループに属するかを識別し、この制御コマンドと同じグループに属する制御コマンドのうち、この制御コマンドの1つ前に受信した制御コマンドを用いて誤り検査値を生成する。そして、生成した誤り検査値と今回受信した制御コマンド情報に含まれる誤り検査値とを照合して誤り検査を行う。さらに、演出制御部120は、今回生成した誤り検査値に応じて、今回送信された制御コマンドが属するグループの次回の生成方式を決定する。すなわち、本実施形態では、過去に送信した制御コマンドの誤り検査値を今回送信する制御コマンドに付加して、主制御部110から演出制御部120に送信している。
通常チェックサム等の誤り検査値は生成元の制御コマンドに付加されて通信エラーチェックに利用される。これに対して、本実施形態の遊技機1は、上述のように、前回または前々回に送信した制御コマンドの誤り検査値を、今回送信する制御コマンドに付加する。このような従来にない新規かつ簡易な手法を用いることにより、不正者が制御コマンドと誤り検査値を不正に取得しても制御コマンドと誤り検査値の関係を容易に知ることができない。したがって、本実施形態によれば、不正者による不正を防止することができ、セキュリティ強度を向上させることができる。
また、本実施形態の遊技機1では、制御コマンドを2以上の複数のグループに分類し、今回送信する制御コマンドに付加する誤り検査値を、当該制御コマンドと同一のグループに属する制御コマンドのうち過去(1個前)に送信された制御コマンドを用いて生成する。これにより、同一のグループに属する制御コマンドが連続して出力される場合は、1個前に出力された制御コマンドの誤り検査値が付加されることになるが、異なるグループに属する制御コマンドが時系列的に混ざって出力される場合は、少なくとも2個以上前に出力された制御コマンドの誤り検査値が付加されることになる。すなわち、制御コマンドに付加される誤り検査値が、1個前に出力された制御コマンドの誤り検査値となったり、2個以上前に出力された制御コマンドの誤り検査値となったりする。したがって、制御コマンドとそれに付加される誤り検査値との時系列的な関係が不規則になるので、制御コマンドとそれに付加される誤り検査値との関連性の解析を困難とすることができセキュリティ強度を向上させることができる。
また、主制御部110が今回送信する制御コマンドと同一のグループに属する制御コマンドのうち今回送信する制御コマンドよりも過去(1個前)に送信した制御コマンドを用いて生成した誤り検査値を、今回送信する制御コマンドに付加して送信し、演出制御部120が認証処理を行う。これにより、今回受信した制御コマンドの正当性を認証するとともに、今回付加された誤り検査値の生成元となった制御コマンドの正当性をも認証することができる。このように、今回送信された制御コマンドと、過去に送信された制御コマンドの正当性を同時に認証することができるので、主制御部110が継続的に正しく動作していることを認証することができる。
また、本実施形態では、各制御コマンドに誤り検査値を付加して主制御部110から演出制御部120に送信し、演出制御部120が各制御コマンド毎に認証処理を行うので、常時不正を検査することができる。
また、本実施形態の遊技機1は、通常は通信エラーチェックに用いる誤り検査値を不正を検出するための検査値として利用している。このように通信エラーチェックに従来から用いている誤り検査値を用いることで、誤り検査を行うための検査値を別に生成するための手段を設けることなく、簡単な構成で不正者による不正を防止することができ、セキュリティ強度を向上させることができる。すなわち、遊技機の主制御基板のリソースが限られているという状況下において、セキュリティ強度を向上させつつ、主制御基板の処理負荷の増大を抑制することができる。
また、本実施形態の遊技機1では、主制御部110の制御部520は、今回送信される誤り検査値に基づいて、当該誤り検査値が付加される制御コマンドが属するグループの次回の生成方式を複数の生成方式から決定している。このような本実施形態の遊技機1では、今回送信される誤り検査値が所定の切替条件を満たす場合に誤り検査値の生成方式が変更される。これにより、不正者が制御コマンドおよびそれに付加された誤り検査値を複数、不正に取得したとしても、誤り検査値の生成方式の変更タイミングを知ることができないので、制御コマンドと生成方式の関係性を解析困難とすることができる。したがって、不正者が不正を行うことを困難にすることができセキュリティ強度を向上させることができる。
特に本実施形態では、上述のように、制御コマンドを2以上の複数のグループに分類し、今回送信する制御コマンドに付加する誤り検査値を、当該制御コマンドと同一のグループに属する制御コマンドのうち過去(1個前)に送信された制御コマンドを用いて生成する。これにより、セキュリティ強度を向上されているうえに、生成方式を複数の方式から決定可能に構成されているため、より一層のセキュリティ強度の向上を実現させることができる。
また、本実施形態の遊技機1では、図5に示すように、グループ毎に独立して生成方式を制御している。すなわち、今回送信される誤り検査値が所定の切替条件を満たす場合に当該誤り検査値が付加される制御コマンドが属するグループの生成方式が変更される。これにより、時系列的に連続して出力される誤り検査値の生成方式が、送信される誤り検査値が所定の切替条件を満たさないにも関わらず変更される場合がある(例えば、図5の制御コマンドB2を参照)。したがって、制御コマンドと生成方式の関係性を解析困難とすることができるので、制御コマンドと誤り検査値との対応関係をより一層解析困難とすることができる。すなわち、本実施形態によれば、セキュリティ強度をより一層向上させることができるのである。
なお、本実施形態において、誤り検査値生成部510の制御部520は、制御コマンド記憶部530の動作を制御するために、「グループ情報」と「コマンド制御信号」とを制御コマンド記憶部530に出力している。すなわち、制御部520は、今回送信される制御コマンドと同一のグループに属する制御コマンドのうち今回送信される制御コマンドを基準として1個前に送信された制御コマンドを制御コマンド記憶部530から誤り検査値演算部540へと出力させることを判断し、その判断結果に基づいて、いずれの制御コマンドを出力するべきかを示すコマンド制御信号を制御コマンド記憶部530に出力している。しかしながら、本発明はこれに限定されず、制御部520は、今回送信される制御コマンドに関するグループ情報のみを制御コマンド記憶部530に出力するようにしてもよい。この場合、制御コマンド記憶部530は、グループ情報に基づいて、今回出力すべき制御コマンドを誤り検査値演算部540に出力するように構成すればよい。また、演出制御部120の誤り検査値生成部610も同様である。
〈第2の実施形態〉
以下、本発明の遊技機の一実施形態に係る第2の実施形態について説明する。第1の実施形態の遊技機1は、前回送信した制御コマンドの誤り検査値を今回送信する制御コマンドに付加して制御コマンド情報を生成するために、制御コマンドを保存しておき、既に保存してある前回送信した制御コマンドを取得してその誤り検査値を生成し、この誤り検査値を今回送信する制御コマンドに付加して制御コマンド情報を生成していた。これに対して、本実施形態の遊技機は、今回送信する制御コマンドを用いて複数の生成方式で生成した、各生成方式に対応する誤り検査値、すなわち複数の生成方式のそれぞれに対応する複数種類の誤り検査値をそれぞれ保存しておき、保存しておいた複数種類の誤り検査値から、既に決められた今回送信する種類の誤り検査値(既に決められた生成方式によって生成された誤り検査値)を取得して制御コマンド情報を生成する。本実施形態の遊技機は、それ以外の点では基本的に第1の実施形態の遊技機1と同様なので、以下、同一の部材については同一の符号を付すとともにその説明は省略し、異なる点について重点的に説明する。
[遊技機の認証に関する構成]
図19は、本実施形態に係る遊技機を構成する主制御部110の認証処理に関する構成を示す機能ブロック図である。主制御部110は、制御コマンド出力部500と、誤り検査値生成部810と、付加部550と、送信部560とを備えている。さらに、誤り検査値生成部810は、制御部820と、誤り検査値演算部830と、誤り検査値記憶部840とから構成される。主制御部110を構成する各機能ブロックは、例えば、図4に示す、メインCPU110a、メインROM110b、およびメインRAM110c等の主制御部110が有する各部材を適宜組み合わせて構成される。
制御コマンド出力部500は、演出制御部120に今回送信される制御コマンドを生成し、誤り検査値生成部810の制御部820および誤り検査値演算部830、ならびに付加部550に出力する。付加部550は、制御コマンド出力部500から出力された今回送信される制御コマンドに、誤り検査値生成部810から今回出力された誤り検査値を付加して、演出制御部120へと送信される制御コマンド情報を生成する。送信部560は、制御コマンド情報を演出制御部120へと送信する。
誤り検査値生成部810は、制御コマンドを予め複数のグループに分類しており、今回送信される制御コマンドがいずれのグループに属するかを識別する。そして、誤り検査値生成部810は、取得した制御コマンドを用いて複数の生成方式で誤り検査値を生成しこれを記憶しておく。誤り検査値を記憶する際に、この誤り検査値の生成元となった制御コマンドが属するグループに対応するようにグループに分類するとともに、いずれの生成方式で生成されたものかがわかるように記憶する。さらに、誤り検査値生成部810は、今回送信される制御コマンドが属するグループに対応するグループに属する誤り検査値の中の過去に生成された誤り検査値のうち、過去に送信された誤り検査値によって決定された生成方式で生成された誤り検査値を付加部550に出力する。
本実施形態では、制御コマンドおよび誤り検査値を2つのグループ(グループAとグループB)に分類する例について説明する。また、本実施形態では、制御コマンド出力部500によって今回出力された制御コマンドのグループに対応するグループに属する誤り検査値のうち、当該制御コマンドを用いて生成された誤り検査値を基準として1個前に生成された誤り検査値を付加部550に出力する例について説明する。また、本実施形態では、誤り検査値生成部810が、付加部550に今回出力する誤り検査値に基づいて、当該制御コマンドが属するグループと同一のグループに属する制御コマンドのうち次回出力される制御コマンドに付加される誤り検査値の生成方式を決定する例について説明する。
制御部820は、制御コマンド出力部500から出力された制御コマンドがいずれのグループに属するかを識別する。そして、制御部820は、識別結果に基づいて、この制御コマンドに関するグループ情報を誤り検査値記憶部840に出力する。
また、制御部820は、いずれのグループに属し、いずれの生成方式で生成された誤り検査値を誤り検査値記憶部840が出力すべきかを示す制御信号(以下、出力制御信号という)をすでに決定されている結果に応じて生成し、誤り検査値記憶部840に出力する。
また、制御部820は、誤り検査値記憶部840から今回出力された誤り検査値、すなわち、主制御部110が今回送信する誤り検査値に基づいて、今回送信される制御コマンドと同一のグループに属する制御コマンドのうち次回送信される制御コマンドに付加する誤り検査値の生成方式を、複数の誤り検査値の生成方式(本実施形態では2つの誤り検査値の生成方式)から決定する。制御部820は、決定した生成方式の情報をグループ毎に記憶する生成方式記憶領域を有し、各グループの生成方式の情報を個別に記憶している。
ここで、本実施形態においても、制御部820は、今回送信される誤り検査値が所定の切替条件を満たす場合に、当該誤り検査値(が付加される制御コマンド)が属するグループの生成方式を変更する。例えば、グループAにおいて今回の誤り検査値が方式αで生成されたものである場合、すなわち、生成方式記憶領域の生成方式の情報が方式αの場合、次回の生成方式を方式βに決定し、生成方式記憶領域の生成方式の情報を更新する。一方、制御部820は、今回送信される誤り検査値が所定の切替条件を満たさない場合に、誤り検査値の生成方式を継続する。例えば、グループAにおいて今回の誤り検査値が方式αで生成されたものである場合、すなわち、生成方式記憶領域の生成方式の情報が方式αの場合、次回の生成方式を方式αに決定し、生成方式記憶領域の生成方式の情報を継続する。
制御部820の機能を実現する具体的な手段は、例えば、図4に示すメインCPU110a、メインROM110bの一部、およびメインRAM110cの一部から構成することができる。より具体的には、メインCPU110aは、メインRAM110cをワークエリアとして、今回出力された制御コマンド(コマンドデータ)、およびメインROM110bに予め記憶されているプログラムに基づき、この制御コマンドがいずれのグループに属するかを識別する。また、メインCPU110aは、メインRAM110cをワークエリアとして、今回出力された誤り検査値、およびメインROM110bに予め記憶されているプログラムに基づき、メインRAM110cの生成方式記憶領域に記憶されている生成方式の情報を更新する。また、メインCPU110aは、グループ情報および生成方式の情報に基づき、メインRAM110cに出力制御信号を出力する。
誤り検査値演算部830は、複数の誤り検査値の生成方式、本実施形態では2つの誤り検査値の生成方式(方式α、方式β)で誤り検査値を生成可能であり、制御コマンド出力部500から出力された今回送信される制御コマンドを用いて、上記複数の生成方式のそれぞれで誤り検査値を生成する。すなわち、複数の生成方式のそれぞれに対応する複数種類の誤り検査値を生成する。さらに、誤り検査値演算部830は、生成した複数種類の誤り検査値を誤り検査値記憶部840へと出力する。この際に、誤り検査値演算部830は、誤り検査値の生成方式がいずれの生成方式か分かる状態で(例えば、生成方式を示す識別ビットを付与して)出力する。誤り検査値演算部830の機能を実現する具体的な手段は、例えば、図4に示すメインCPU110a、メインROM110bの一部、およびメインRAM110cの一部から構成することができる。より具体的には、メインCPU110aは、メインRAM110cをワークエリアとして、メインROM110bに予め記憶されているプログラムに基づき、誤り検査値を生成し、出力する。
誤り検査値記憶部840は、誤り検査値演算部830から出力された誤り検査値を記憶するとともに、今回送信される誤り検査値を制御部820および付加部550に出力する。詳細には、誤り検査値記憶部840は、制御部820から出力されたグループ情報に基づいて、誤り検査値演算部830から今回出力された2種類の誤り検査値を、その生成元となった制御コマンドのグループに対応させて分類して1セットとして記憶する。具体的には、誤り検査値記憶部840は、検査値記憶領域を含み、この検査値記憶領域は、グループAに属する制御コマンドから生成された誤り検査値を記憶する検査値記憶領域Aと、グループBに属する制御コマンドから生成された誤り検査値を記憶する検査値記憶領域Bとに分かれている。すなわち、誤り検査値記憶部840は、誤り検査値演算部830から今回出力された誤り検査値を、その生成元となった制御コマンドのグループ情報に基づいて当該制御コマンドが属するグループに対応させてグループ分けし、そのグループに対応する検査値記憶領域に1セットとして記憶する。その際に、誤り検査値記憶部840は、いずれの生成方式で生成された誤り検査値か分かるように記憶する。
また、誤り検査値記憶部840は、制御部820から出力された出力制御信号に基づいて、今回送信される制御コマンドと同一のグループに属する制御コマンドのうち1個前に送信された制御コマンドを用いて生成された誤り検査値であって、制御部820によって決定された生成方式で生成された誤り検査値を制御部820および付加部550に出力する。
誤り検査値記憶部840の機能を実現する具体的な手段は、例えば、図4に示すメインCPU110a、メインRAM110cに設けられる検査値記憶領域等である。より具体的には、メインCPU110aは、メインRAM110cをワークエリアとして、今回出力された制御コマンドのグループ情報、およびメインROM110bに予め記憶されているプログラムに基づき、この制御コマンドが属するグループに対応する検査値記憶領域にこの制御コマンドから生成された誤り検査値を記憶する。さらに、この制御コマンドが属するグループに対応する検査値記憶領域に記憶された誤り検査値のうち、今回出力され記憶された誤り検査値を基準として1個前に記憶された誤り検査値であって、生成方式記憶領域に記憶された生成方式で生成された誤り検査値を今回送信される誤り検査値として取得する。
このように構成された主制御部110の各構成部の動作の概略を説明する。遊技機1の電源が投入され、主制御部110のメインCPU110aが初期化処理を行った後、制御コマンド出力部500は、演出制御部120に今回送信される制御コマンドを生成し、誤り検査値生成部810および付加部550に出力する。
誤り検査値生成部810は、出力された今回送信される制御コマンドがいずれのグループに属するかを識別する。また、誤り検査値生成部810は、今回送信される制御コマンドを用いて複数の生成方式で誤り検査値を生成しこれを記憶するが、その際に、上記識別結果に基づいて、生成元となった制御コマンドが属するグループに対応するように分類して記憶する。さらに、誤り検査値生成部810は、今回送信される制御コマンドから生成された誤り検査値と同一のグループに属する誤り検査値のうち1個前に送信された制御コマンドの誤り検査値であって、既に決定された生成方式で生成された誤り検査値を付加部550に出力する。また、誤り検査値生成部810は、今回送信される誤り検査値に基づいて、当該誤り検査値が付加される制御コマンドと同一のグループに属する制御コマンドのうち次回送信される制御コマンドに付加される誤り検査値の生成方式を決定する。
付加部550は、制御コマンド出力部500から出力された今回送信される制御コマンドに、誤り検査値生成部810から出力された今回送信される誤り検査値を付加して制御コマンド情報を生成し、送信部560へ出力する。
送信部560は、付加部550から受け取った制御コマンド情報を演出制御部120へと送信する。
図20は、本発明の第2の実施形態に係る遊技機を構成する演出制御部120の認証処理に関する構成を示す機能ブロック図である。演出制御部120は、受信部600と、誤り検査値生成部910と、誤り検査部650とを備えている。さらに、誤り検査値生成部910は、制御部920と、誤り検査値演算部930と、誤り検査値記憶部940とから構成される。演出制御部120を構成する各機能ブロックは、図4に示す、サブCPU120a、サブROM120b、およびサブRAM120c等の各部材を適宜組み合わせて構成される。
受信部600は、受信データ用記憶領域を有し、主制御部110から受信した制御コマンド情報を受信データ用記憶領域に書き込む。また、受信部600は、受信した制御コマンド情報に含まれる今回受信した制御コマンドを誤り検査値生成部910へ、今回受信した制御コマンドに付加された誤り検査値を誤り検査部650へと出力する。誤り検査部650は、受信部600から送られた今回受信した制御コマンドに付加された誤り検査値と、誤り検査値生成部910から送られた前回受信した制御コマンドを用いて生成された誤り検査値とを用いて誤り検査を行う。
誤り検査値生成部910は、制御コマンドを予め複数(本実施形態では2つ)のグループに分類しており、今回送信された制御コマンドがいずれのグループに属するかを識別する。そして、誤り検査値生成部910は、取得した制御コマンドを用いて複数の生成方式で誤り検査値を生成しこれを記憶しておく。誤り検査値を記憶する際に、この誤り検査値の生成元となった制御コマンドが属するグループに対応するようにグループに分類するとともに、いずれの生成方式で生成されたものかがわかるように記憶する。さらに、誤り検査値生成部910は、当該制御コマンドが属するグループに対応するグループに属する誤り検査値であって過去(本実施形態では1個前)に生成された誤り検査値のうち、過去に誤り検査に用いられた誤り検査値によって決定された生成方式で生成された誤り検査値を誤り検査部650に出力する。
制御部920は、受信部600から出力された制御コマンドがいずれのグループに属するかを識別する。そして、制御部920は、識別結果に基づいて、この制御コマンドに関するグループ情報を誤り検査値記憶部940に出力する。
また、制御部920は、いずれのグループに属し、いずれの生成方式で生成された誤り検査値を誤り検査値記憶部940が出力すべきかを示す出力制御信号をすでに決定されている結果に応じて生成し、誤り検査値記憶部940に出力する。
また、制御部920は、誤り検査値記憶部940から今回出力された誤り検査値、すなわち、演出制御部120が今回の誤り検査に用いる誤り検査値に基づいて、今回送信された制御コマンドと同一のグループに属する制御コマンドのうち次回受信される制御コマンドに関する誤り検査に用いられる誤り検査値の生成方式を、2つの誤り検査値の生成方式から決定する。制御部920は、決定した生成方式の情報をグループ毎に記憶する生成方式記憶領域を有し、各グループの生成方式の情報を個別に記憶している。
制御部920の機能を実現する具体的な手段は、例えば、図4に示すサブCPU120a、サブROM120bの一部、およびサブRAM120cの一部から構成することができる。より具体的には、サブCPU120aは、サブRAM120cをワークエリアとして、今回送信された制御コマンド(コマンドデータ)、およびサブROM120bに予め記憶されているプログラムに基づき、この制御コマンドがいずれのグループに属するかを識別する。また、サブCPU120aは、サブRAM120cをワークエリアとして、今回出力された誤り検査値、およびサブROM120bに予め記憶されているプログラムに基づき、サブRAM120cの生成方式記憶領域に記憶されている生成方式の情報を更新する。また、サブCPU120aは、グループ情報および生成方式の情報に基づき、サブRAM120cに出力制御信号を出力する。
誤り検査値演算部930は、2つの誤り検査値の生成方式(方式α、方式β)で誤り検査値を生成可能であり、受信部600から出力された今回送信された制御コマンドを用いて、上記2つの生成方式のそれぞれで誤り検査値を生成する。すなわち、2つの生成方式のそれぞれに対応する2種類の誤り検査値を生成する。さらに、誤り検査値演算部930は、生成した2種類の誤り検査値を誤り検査値記憶部940へと出力する。この際に、誤り検査値演算部930は、誤り検査値の生成方式がいずれの生成方式か分かる状態で(例えば、生成方式を示す識別ビットを付与して)出力する。誤り検査値演算部930の機能を実現する具体的な手段は、例えば、図4に示すサブCPU120a、サブROM120bの一部、およびサブRAM120cの一部から構成することができる。より具体的には、サブCPU120aは、サブRAM120cをワークエリアとして、サブROM120bに予め記憶されているプログラムに基づき、誤り検査値を生成し、出力する。
誤り検査値記憶部940は、誤り検査値演算部930から出力された誤り検査値を記憶するとともに、今回の誤り検査に用いられる誤り検査値を制御部920および誤り検査部650に出力する。詳細には、誤り検査値記憶部940は、制御部920から出力されたグループ情報に基づいて、誤り検査値演算部930から今回出力された2種類の誤り検査値を、その生成元となった制御コマンドのグループに対応させて分類して1セットとして記憶する。具体的には、誤り検査値記憶部940は、検査値記憶領域を含み、この検査値記憶領域は、グループAに属する制御コマンドから生成された誤り検査値を記憶する検査値記憶領域Aと、グループBに属する制御コマンドから生成された誤り検査値を記憶する検査値記憶領域Bとに分かれている。すなわち、誤り検査値記憶部940は、誤り検査値演算部930から今回出力された誤り検査値を、その生成元となった制御コマンドのグループ情報に基づいて当該制御コマンドが属するグループに対応させてグループ分けし、そのグループに対応する検査値記憶領域に1セットとして記憶する。その際に、誤り検査値記憶部940は、いずれの生成方式で生成された誤り検査値か分かるように記憶する。
また、誤り検査値記憶部940は、制御部920から出力された出力制御信号に基づいて、今回送信された制御コマンドと同一のグループに属する制御コマンドのうち1個前に送信された制御コマンドを用いて生成された誤り検査値であって、制御部920によって決定された生成方式で生成された誤り検査値を制御部920および誤り検査部650に出力する。
誤り検査値記憶部940の機能を実現する具体的な手段は、例えば、図4に示すサブCPU120a、サブRAM120cに設けられる検査値記憶領域等である。より具体的には、サブCPU120aは、サブRAM120cをワークエリアとして、今回送信された制御コマンドのグループ情報、およびサブROM120bに予め記憶されているプログラムに基づき、この制御コマンドが属するグループに対応する検査値記憶領域にこの制御コマンドから生成された誤り検査値を記憶する。さらに、この制御コマンドが属するグループに対応する検査値記憶領域に記憶された誤り検査値のうち、今回出力され記憶された誤り検査値を基準として1個前に記憶された誤り検査値であって、生成方式記憶領域に記憶された生成方式で生成された誤り検査値を今回誤り検査に用いる誤り検査値として取得する。
このように構成された演出制御部120の各構成部の動作の概略を説明する。遊技機1の電源が投入され、主制御部110のメインCPU110aが初期化処理を行った後、主制御部110は制御コマンドの出力を開始し、演出制御部120に制御コマンド情報を送信する。受信部600は、制御コマンド情報を受信して、受信した制御コマンド情報の制御コマンドを誤り検査値生成部910に、誤り検査値を誤り検査部650に出力する。
誤り検査値生成部910は、出力された今回送信された制御コマンドがいずれのグループに属するかを識別する。また、誤り検査値生成部910は、今回送信された制御コマンドを用いて複数の生成方式で誤り検査値を生成しこれを記憶するが、その際に、上記識別結果に基づいて、生成元となった制御コマンドが属するグループに対応するように分類して記憶する。さらに、誤り検査値生成部910は、今回送信された制御コマンドから生成された誤り検査値と同一のグループに属する誤り検査値のうち1個前に生成された誤り検査値であって、既に決定された生成方式で生成された誤り検査値を誤り検査部650に出力する。また、誤り検査値生成部910は、今回出力される誤り検査値に基づいて、今回送信された制御コマンドと同一のグループに属する制御コマンドのうち次回受信される制御コマンドに対する認証処理に用いられる誤り検査値の生成方式を決定する。
誤り検査部650は、受信部600から出力された今回送信された制御コマンドに付加された誤り検査値と、誤り検査値生成部910から出力された前回送信された制御コマンドを用いて生成された誤り検査値とを用いて誤り検査を行う。
[遊技機の動作処理]
次に、上記構成の遊技機の動作処理について、図面を参照して説明する。
本実施形態において主制御部110による処理は、第1の実施形態と制御コマンド送信処理のみが異なる。よって、以下、制御コマンド送信処理について説明する。図21は、主制御部110による制御コマンド送信処理の手順の一例を示すフローチャートである。
図9の主制御部110のメイン処理のステップS10の初期化処理における制御コマンド送信処理のタイミングや、図10の主制御部110のタイマ割込み処理の制御コマンド送信処理のタイミングになったら、ステップS721において、制御コマンド出力部500は、今回送信される制御コマンドが送信データ用記憶領域にセットされているかを参照することで、制御コマンドの送信タイミングかを判断する。制御コマンドがセットされている場合は、制御コマンド出力部500は、制御コマンドの送信タイミングであると判断する。そして、制御コマンド出力部500は、当該制御コマンドを誤り検査値生成部810の制御部820および制御コマンド演算部830ならびに付加部550に出力し、ステップS722へと進む。制御コマンドがセットされていない場合は、制御コマンドの送信タイミングではないと判断し、制御コマンド送信処理を終了する。具体的には、メインCPU110aは、メインRAM110cの送信データ用記憶領域に、今回送信される制御コマンドが記憶されている場合、制御コマンドの送信タイミングであると判断し、当該制御コマンドを取得する。
続いて、ステップS722において、制御部820は、制御コマンド出力部500が今回出力した制御コマンド、すなわち今回送信される制御コマンドを取得し、この制御コマンドがいずれのグループに属するかを識別する。さらに、この識別結果をグループ情報として誤り検査値記憶部840に出力する。
続いて、ステップS723において、誤り検査値演算部830は、取得した制御コマンドを用いて、2つの誤り検査値の生成方式である方式α、方式βのそれぞれで誤り検査値を生成する。そして、誤り検査値演算部830は、生成した誤り検査値を誤り検査値記憶部840に出力する。
続いて、ステップS724において、誤り検査値記憶部840は、誤り検査値演算部830から出力された2種類の誤り検査値を取得し、これらを1セットとして検査値記憶領域に記憶する。この際に、誤り検査値記憶部840は、当該誤り検査値に関するグループ情報に基づいて、当該誤り検査値が属するグループに対応する検査値記憶領域に、これら2種類の誤り検査値を記憶する。より具体的には、メインCPU110aは、生成元の制御コマンドがグループAに属する場合はメインRAM110cの検査値記憶領域Aに記憶し、生成元の制御コマンドがグループBに属する場合はメインRAM110cの検査値記憶領域Bに記憶する。
続いて、ステップS725において、先ず、制御部820は、今回送信される制御コマンドに関するグループ情報と、誤り検査値の生成方式の情報とを参照して、今回送信されるべき誤り検査値を指示するための出力制御信号を誤り検査値記憶部840に出力する。そして、誤り検査値記憶部840は、制御部820によって出力された出力制御信号に基づいて、今回送信すべき誤り検査値を制御部820および付加部550に出力する。このようにして、制御部820および付加部550は、誤り検査値記憶部840から今回送信される誤り検査値を取得する。
続いて、ステップS726において、制御部820は、制御コマンド出力部500が今回出力した制御コマンドのグループ情報と、生成方式記憶領域に記憶されている生成方式(今回の生成方式)の情報と、今回送信される誤り検査値とに基づいて、当該制御コマンドが属するグループに関する生成方式を決定する。具体的には、例えば、今回送信される制御コマンドがグループAに属し、今回送信される誤り検査値が所定の切替条件を満たし、今回の生成方式が方式αである場合、制御部820は、グループAに関する次回の生成方式を方式βに決定する。また、例えば、今回送信される制御コマンドがグループAに属し、今回送信される誤り検査値が所定の切替条件を満たさず、今回の生成方式が方式αである場合、制御部820は、グループAに関する次回の生成方式を方式αに決定する。
続いて、ステップS727において、制御部820は、決定した生成方式の情報を記憶する。具体的には、制御部820は、決定した結果に応じて、今回送信される制御コマンドが属するグループに対応する生成方式記憶領域に記憶されている次回の誤り検査値の生成方式の情報を更新する。
続いて、ステップS728において、付加部550は、制御コマンド出力部500から出力された今回送信される制御コマンドに、誤り検査値記憶部840から出力された誤り検査値を付加して制御コマンド情報を生成し、送信部560に出力する。
続いて、ステップS729において、送信部560は、付加部550が生成した制御コマンド情報を受け取って演出制御部120に送信した後、本フローチャートによる処理を終了する。
なお、今回送信した制御コマンドの誤り検査値を記憶するステップS724は、ステップS723以降であればどこで行ってもよい。例えば、ステップS725の今回送信する誤り検査値を取得するステップの後に行ってもよく、この場合、誤り検査値記憶部840は各グループに1セットずつの誤り検査値のみを記憶しておけばよい。
以下、演出制御部120の処理について説明する。本実施形態において演出制御部120による処理は、第1の実施形態と認証処理のみが異なる。よって、以下、演出制御部120による認証処理について説明する。以下、図16に示す、ステップS2000の演出制御部120による認証処理について、図22に示すフローチャートを参照して説明する。図22は、演出制御部120による認証処理の手順の一例を示すフローチャートである。
図16に示す、演出制御部120のコマンド解析処理において認証処理の処理タイミングになったら、ステップS2011において、演出制御部120の受信部600は、受信データ用記憶領域に記憶されている制御コマンド情報から制御コマンドおよび誤り検査値を取得する。また、受信部600は、今回受信した制御コマンドを制御部920および誤り検査値演算部930へ、取得した誤り検査値を誤り検査部650へと出力する。
続いて、ステップS2012において、制御部920は、今回送信された制御コマンドを取得し、この制御コマンドがいずれのグループに属するかを識別する。さらに、この識別結果をグループ情報として誤り検査値記憶部940に出力する。
続いて、ステップS2013において、誤り検査値演算部930は、取得した制御コマンドを用いて、2つの誤り検査値の生成方式である方式α、方式βのそれぞれで誤り検査値を生成する。そして、誤り検査値演算部930は、生成した誤り検査値を誤り検査値記憶部940に出力する。
続いて、ステップS2014において、誤り検査値記憶部940は、誤り検査値演算部930から出力された2種類の誤り検査値を取得し、これらを1セットとして検査値記憶領域に記憶する。この際に、誤り検査値記憶部940は、当該誤り検査値に関するグループ情報に基づいて、当該誤り検査値が属するグループに対応する検査値記憶領域に、これら2種類の誤り検査値を記憶する。より具体的には、サブCPU120aは、生成元の制御コマンドがグループAに属する場合はサブRAM120cの検査値記憶領域Aに記憶し、生成元の制御コマンドがグループBに属する場合はサブRAM120cの検査値記憶領域Bに記憶する。
続いて、ステップS2015において、先ず、制御部920は、今回送信された制御コマンドに関するグループ情報と、誤り検査値の生成方式の情報とを参照して、今回誤り検査に用いるべき誤り検査値を指示するための出力制御信号を誤り検査値記憶部940に出力する。そして、誤り検査値記憶部940は、制御部920によって出力された出力制御信号に基づいて、今回誤り検査に用いるべき誤り検査値を制御部920および誤り検査部650に出力する。このようにして、誤り検査部650は、誤り検査値記憶部940から今回誤り検査に用いる誤り検査値を取得する。
続いて、ステップS2016において、制御部920は、受信部600が今回出力した制御コマンド(今回送信された制御コマンド)のグループ情報と、生成方式記憶領域に記憶されている生成方式(今回の生成方式)の情報と、今回誤り検査に用いられる誤り検査値とに基づいて、当該制御コマンドが属するグループに関する生成方式を決定する。具体的には、例えば、今回受信した制御コマンドがグループAに属し、今回誤り検査に用いられる誤り検査値が所定の切替条件を満たし、今回の生成方式が方式αである場合、制御部920は、グループAに関する次回の生成方式を方式βに決定する。また、例えば、今回受信した制御コマンドがグループAに属し、今回誤り検査に用いられる誤り検査値が所定の切替条件を満たさず、今回の生成方式が方式αである場合、制御部920は、グループAに関する次回の生成方式を方式αに決定する。
続いて、ステップS2017において、制御部920は、決定した生成方式の情報を記憶する。具体的には、制御部920は、決定した結果に応じて、今回送信された制御コマンドが属するグループに対応する生成方式記憶領域に記憶されている次回の誤り検査値の生成方式の情報を更新する。
続いて、ステップS2018において、誤り検査部650は、ステップS2011で取得した誤り検査値と、ステップS2015で誤り検査値生成部910から取得した誤り検査値を照合し、誤り検査を行う。
続いて、ステップS2019において、誤り検査の結果、2つの誤り検査値が同一の場合は、誤り検査部650は、今回送信された制御コマンドの正当性の認証が成功であると判断し(ステップS2019の結果がYES)、本フローチャートによる処理を終了する。非同一の場合は、誤り検査部650は、制御コマンドに正当性がなく、認証が不成功であると判断し(ステップS2019の結果がNO)、ステップS2019へと進み、誤り検出の報知を行い、本フローチャートによる処理を終了する。誤り検出の報知方法は、第1の実施形態と同様である。
なお、今回受信した制御コマンドの誤り検査値を記憶するステップS2014は、ステップS2013以降であればどこで行ってもよい。例えば、ステップS2015の今回誤り検査に用いる誤り検査値を取得するステップの後に行ってもよく、この場合、誤り検査値記憶部940は各グループに1セットずつの誤り検査値のみを記憶しておけばよい。
また、本実施形態においても、第1の実施形態同様に、主制御部110と払出制御部130との間で認証処理を行う場合も、主制御部110と演出制御部120との間の認証処理とほぼ同様の手順で行われるため説明を省略する。
以上のように、本実施形態では、主制御部110は、制御コマンドの誤り検査値をグループに分類して記憶している。そして主制御部110は、今回送信する制御コマンドがいずれのグループに属するかを識別し、この制御コマンドと同一のグループに属する誤り検査値のうち今回送信する制御コマンドの誤り検査値の1つ前に生成した誤り検査値を今回送信する制御コマンドに付加して制御コマンド情報として演出制御部120に送信する。主制御部110は、今回送信する誤り検査値に応じて今回送信する制御コマンドが属するグループの次回の生成方式を決定する。一方、演出制御部120は、制御コマンドの誤り検査値をグループに分類して記憶している。そして演出制御部120は、今回受信した制御コマンドがいずれのグループに属するかを識別し、この制御コマンドが属するグループに対応するグループに属する誤り検査値のうち、この今回受信した制御コマンドの誤り検査値の1つ前に生成した誤り検査値と今回受信した制御コマンド情報に含まれる誤り検査値とを照合して誤り検査を行う。演出制御部120は、今回誤り検査に用いる誤り検査値に応じて今回受信した制御コマンドが属するグループの次回の生成方式を決定する。上述のように構成される本実施形態の遊技機も第1の実施形態の遊技機1と同様の効果を得ることができる。
なお、本実施形態では、誤り検査値生成部810は、各制御コマンドについて複数の誤り検査値を生成し、これらを1セットとして誤り検査値記憶部840に記憶している。また、誤り検査値生成部810は、今回送信される誤り検査値に基づいて、当該誤り検査値が属するグループの次回送信される誤り検査値の生成方式を決定している。そして、誤り検査値生成部810は、この決定に応じて、送信される誤り検査値を制御するための出力制御信号を制御部820から誤り検査値記憶部840へ出力している。そして、誤り検査値記憶部840は、出力制御信号に応じて、既に決定されているグループおよび生成方式の誤り検査値を出力している。しかしながら、本実施形態はこれに限定されず、誤り検査値生成部810は、今回送信される誤り検査値に基づいて当該誤り検査値が属するグループの次回送信される誤り検査値の生成方式を決定し、この決定に応じた生成方式のみで誤り検査値を生成し、これを記憶するようにしてもよい。具体的には、制御部820は、今回送信される誤り検査値に基づいて、当該誤り検査値が属するグループにおいて次回送信される誤り検査値がいずれの生成方式で生成された誤り検査値であるかを特定する。そして、制御部820は、特定した結果に基づいて、生成方式を制御するための方式制御信号を誤り検査値演算部830に出力する。誤り検査値演算部830は、方式制御信号に応じた生成方式のみで誤り検査値を生成して誤り検査値記憶部840に出力する。誤り検査値記憶部840は、制御部820から出力されたグループ情報に応じて、今回送信される制御コマンドが属するグループに対応する検査値記憶領域に誤り検査値を記憶する。なお、演出制御部120の誤り検査値生成部910も同様である。
以上、本発明の遊技機の一例である各実施形態について詳細に説明したが、本発明の遊技機は上記実施形態に限定されない。例えば、上記実施形態では、今回送信する誤り検査値の値に応じて、同一グループにおいて次回送信する誤り検査値の生成方式を決定していた。しかしながら、本発明はこれに限定されず、今回送信する誤り検査値に応じて、同一グループにおいてm(mは2以上の整数)個後に送信する誤り検査値の生成方式を決定するようにしてもよい。この場合、誤り検査値生成部は、生成方式記憶領域に各グループについてm個分の生成方式の情報を記憶しておき、記憶している生成方式の情報から今回の生成方式の情報を参照して、今回送信される(今回誤り検査に用いられる)誤り検査値の生成方式を決定すればよい。具体的には、例えば、mビットのシフトレジスタを設け、0を方式α、1を方式βに対応させて、シフトレジスタの各ビットに生成方式の情報を記憶しておく。そして、誤り検査値生成部は、今回送信される(今回誤り検査に用いられる)誤り検査値の生成方式を決定する際に、シフトレジスタの1ビットの値を参照し、今回送信される(今回誤り検査に用いられる)誤り検査値の生成方式を特定する。さらに、誤り検査値生成部は、今回送信される(今回誤り検査に用いられる)誤り検査値の値に基づいて、同一グループにおいてm回後に送信される(m回後に誤り検査に用いられる)誤り検査値の生成方式を決定し、シフトレジスタの値を更新し、決定した生成方式の情報をシフトレジスタのmビットにセットする。
具体的に、m=2の場合、すなわち、今回送信される誤り検査値の値に応じて、同一グループにおいて2個後に送信される誤り検査値の生成方式を決定する場合について、図23を用いて説明する。なお、以下の説明では、1番目、2番目、3番目、および7番目にグループA、4番目、5番目、および6番目にグループBにそれぞれ属する制御コマンドが送信されるとして説明する。また、誤り検査値の生成方式は、最初、グループAおよびグループBのいずれも方式αに設定されているとする。また、制御コマンドA1の誤り検査値である誤り検査値A1は、所定の切替条件を満たす誤り検査値とする。なお、図23に示す制御コマンドの送信順番は一例であって特にこれに制限されない。
図23に示すように、制御コマンド情報は、基本的に、今回送信される制御コマンドと同一のグループに属するもののうち当該制御コマンドの1個前に送信された制御コマンドの誤り検査値が、今回送信される制御コマンドに付加された形式になっている。ただし、最初に送信される制御コマンドA1には所定の初期値1が付加されている。2番目に送信される制御コマンドA2は、グループAに属する制御コマンドである。したがって、制御コマンドA2には、グループAに属する制御コマンドのうち1個前に送信された制御コマンドA1を用いて方式αで生成された誤り検査値A1(α)が付加される。ここで、誤り検査値A1(α)は所定の切替条件を満たすので、次回のグループAの生成方式が方式βに変更される。次に、3番目に送信される制御コマンドA3は、グループAに属する制御コマンドである。したがって、制御コマンドA3には、グループAに属する制御コマンドのうち1個前に送信された制御コマンドA2を用いて方式βで生成された誤り検査値A2(β)が付加される。次に、4番目に送信される制御コマンドB1は、グループBに属する制御コマンドで最初に送信される制御コマンドなので、所定の初期値である初期値2が付加される。次に、5番目に送信される制御コマンドB2は、グループBに属する制御コマンドである。したがって、制御コマンドB2には、グループBに属する制御コマンドのうち1個前に送信された制御コマンドB1を用いて方式αで生成された誤り検査値B1(α)が付加される。ここで、誤り検査値B1(α)は所定の切替条件を満たすので、次回のグループBの生成方式が方式βに変更される。次に、6番目に送信される制御コマンドB3は、グループBに属する制御コマンドである。したがって、制御コマンドB3には、グループBに属する制御コマンドのうち1個前に送信された制御コマンドB2を用いて方式βで生成された誤り検査値B2(β)が付加される。次に、7番目に送信される制御コマンドA4は、グループAに属する制御コマンドである。したがって、制御コマンドA4には、グループAに属する制御コマンドのうち1個前に送信された制御コマンドA3を用いて方式βで生成された誤り検査値A3(β)が付加される。以下、同様にして、今回送信される制御コマンドには、これが属するグループの制御コマンドのうち1個前に送信された制御コマンドの誤り検査値が付加される。また、今回送信される誤り検査値が所定の切替条件を満たす場合は、当該誤り検査値が属するグループの生成方式が他の生成方式に変更される。
このように、今回送信する誤り検査値の値に応じて、同一グループにおいてm個後に送信する誤り検査値の生成方式を決定することにより、制御コマンドとそれに付加された誤り検査値との関係をより解析困難とすることができる。これにより、不正者が制御コマンド情報を取得したとしても、不正を行うことをより困難とすることができる。
また、上記実施形態では、誤り検査値の生成方式は方式αと、方式βの2つの方式を例として説明したが、本発明はこれに限定されず、誤り検査値生成部は、3つ以上の複数の生成方式で誤り検査値を生成可能に構成してもよい。
また、上記実施形態では、誤り検査値生成部510、810は、今回送信される誤り検査値に基づいて、今回送信される制御コマンドと同一のグループに属する誤り検査値のうち、M(Mは正整数)個後に送信される誤り検査値の生成方式を決定していた。そして、決定した生成方式の情報を生成方式記憶領域に記憶し、この情報に応じて送信される誤り検査値の生成方式を特定するとした。しかし、本発明はこれに限定されず、例えば、今回送信される誤り検査値に基づいて、今回送信される制御コマンドと同一のグループに属する誤り検査値のうち、M個後に送信される誤り検査値の生成方式を切替えるか否かの情報を生成方式記憶領域に記憶するように構成してもよい。そして、この切替えるか否かの情報を参照して今回送信される誤り検査値の生成方式を切替えるか否かを特定するようにしてもよい。いずれにせよ、誤り検査値生成部510、810は、今回送信される誤り検査値に基づいて誤り検査値の生成方式を決定しているのである。演出制御部120の誤り検査値生成部610、910についても同様である。
また、この場合、あるグループに属する誤り検査値のうちm個後に送信する(誤り検査に用いる)誤り検査値の生成方式を切替える際に、同グループのm−1個後に送信する(誤り検査に用いる)誤り検査値の生成方式を参照して、m個後に送信する(誤り検査に用いる)誤り検査値の生成方式を決定しているがこれに限定されず、同グループのm−q個後に送信する(誤り検査に用いる)誤り検査値の生成方式を参照して決定するようにしてもよい(mは2以上の整数、qはm未満の正整数)。すなわち、今回送信する(誤り検査に用いる)誤り検査値の生成方式を決定する際に、同グループの1個前に送信した(誤り検査に用いた)誤り検査値の生成方式を参照することに限定されず、同グループのq個前に送信した(誤り検査に用いた)誤り検査値の生成方式を参照してもよい。
例えば、q=2かつ、m個後に送信する(誤り検査に用いる)誤り検査値の生成方式を切替えるか否かの情報が切替えることを示している場合、m−2個後に送信する(誤り検査に用いる)誤り検査値の生成方式を参照して(参照する際は、同グループにおいて、既に2個前に送信されている(誤り検査に用いられている)誤り検査値の生成方式となっている)、この生成方式に対して誤り検査値の生成方式を切替える。すなわち、同グループにおいて2個前に送信した(誤り検査に用いた)誤り検査値の生成方式を参照し、この生成方式が方式αである場合、今回送信する(誤り検査に用いる)誤り検査値の生成方式を方式βに切替える。いずれにせよ、誤り検査値生成部は、今回送信する制御コマンドに付加される(今回の誤り検査に用いる)誤り検査値の生成方式を誤り検査値に基づいて決定しているのである。
なお、今回送信する(誤り検査に用いる)誤り検査値に基づいて当該制御コマンドと同一のグループに属する誤り検査値のうちm個後に送信する(誤り検査に用いる)誤り検査値の生成方式を決定する構成として、グループ毎にmビットのシフトレジスタを用いる例を挙げたが、これに限定されず、その他各種の構成および方法に基づいてハードウェアおよびソフトウェアにて実現可能に構成してもよい。例えば、誤り検査値生成部は、m個又は最大切替回数分のインクリメントカウンタまたはディクリメントカウンタをグループ毎に備えており、今回送信する(誤り検査に用いる)誤り検査値が所定の切替条件を満たす場合に、当該誤り検査値が属するグループのカウンタを1つずつ起動させる。そして、対応するグループの誤り検査値を生成するたびにカウンタ値を更新し、カウンタ値がm又は0になった場合に生成方式の切替えるように構成してもよい。
また、制御コマンドを2以上の複数のグループに分ける分類方法は、出現頻度に着目する上記実施形態に限定されず、「特別図柄変動関連コマンド」の少なくとも1つがそれ以外と異なるグループとなるように分類してもよい。上述のように、特別図柄変動関連コマンドは、特別図柄の変動の際にセットで送信される制御コマンドであり、演出図柄指定コマンド、図柄確定コマンド、および変動パターン指定コマンドである。これらの制御コマンドの少なくとも1つが、その他の制御コマンドと異なるグループとなるように分類することにより、特別図柄が変動する際に必ず、グループが切り替わることとなる。これにより、制御コマンドとそれに付加される誤り検査値の関係を不規則にして、その解析を困難とすることができセキュリティ強度を向上させることができる。特に、特別図化柄変動関連コマンドは、遊技者が遊技中に頻繁に出力されるコマンド群である。したがって、遊技者が遊技中に頻繁かつ不規則にグループが切り替わることになるので、遊技中において効果的にセキュリティ強度を向上させることができる。
また、制御コマンドを2以上の複数のグループに分ける場合、「大当たり関連コマンド」の少なくとも1つがそれ以外と異なるグループとなるように分類してもよい。上述のように、大当たり関連コマンドは、大当たり遊技処理の際にセットで送信される制御コマンドであり、大当たり開始コマンド、大当たりコマンド、および大当たり終了コマンドである。これらの制御コマンドの少なくとも1つが、その他の制御コマンドと異なるグループとなるように分類することにより、大当たり遊技処理の際に必ず、グループが切り替わることとなる。これにより、制御コマンドとそれに付加される誤り検査値の関係を不規則にして、その解析を困難とすることができセキュリティ強度を向上させることができる。特に、大当たり関連コマンドは、不正者によって不正に出力されやすい制御コマンドであるため、このように分類することにより不正防止の効果を好適に得ることができる。
また、制御コマンドを2以上に複数のグループに分ける場合、大当たり遊技処理中に出力される「大当たり関連コマンド」と、大当たり遊技処理中以外に出力される制御コマンドとを同一のグループに分類してもよい。大当たり遊技処理中以外に出力される制御コマンドとは、例えば、ハズレのリーチ演出を行うために出力されるハズレリーチコマンド(図8に示す「第1特別図柄用変動パターン4指定コマンド」等)といった制御コマンドである。このように分類することにより、大当たり遊技処理の実行前(後)と大当たり遊技処理の実行中とにおいて、連続的に正しく処理が行われているかを検査することができる。また、大当たり関連コマンドに関する認証処理を、当該大当たり関連コマンドの後に送信されるその他の制御コマンドの送信時において行うことができる。これにより、不正者によって不正に出力されやすい大当たり関連コマンドに関する認証処理のタイミングを不正者から解析困難とすることができるため、不正防止の効果を好適に得ることができる。
また、上記実施形態では、今回送信する制御コマンドに、当該制御コマンドが属するグループに対応するグループに属する誤り検査値を付加していた。例えば、今回送信する制御コマンドがグループAに属する場合、グループAに属する制御コマンドの誤り検査値を付加していた。しかしながら、本発明はこれに限定されず、今回送信する制御コマンドに、当該制御コマンドが属するグループに基づいて予め決定された取り決めによって対応付けられたグループに属する誤り検査値を付加するように構成してもよい。例えば、今回送信する制御コマンドがグループAに属する場合はグループBに属する制御コマンドの誤り検査値を付加し、グループBに属する場合はグループAに属する制御コマンドの誤り検査値を付加するようにしてもよい。
また、上記実施形態では、今回送信する誤り検査値が所定の切替条件を満たす場合に、当該誤り検査値が属するグループの生成方式を変更していたが、本発明はこれに限定されず、当該誤り検査値が属するグループとは異なるグループの生成方式を変更してもよい。例えば、今回送信する誤り検査値がグループAに属する場合、グループBの生成方式を変更してよもよい。誤り検査値が属するグループに対して、いずれのグループの生成方式を変更するかは、予め取り決めておけばよい。
また、上記実施形態では、図5、図23に示すように、グループ毎に生成方式を制御していたが、本発明はこれに限定されない。例えば、全てのグループで共通した生成方式として生成方式を制御するようにしてもよい。このような場合の制御コマンドへの誤り検査値の付加方法について、図24を用いて説明する。なお、以下の説明では、今回送信する制御コマンドに、当該制御コマンドと同一のグループに属する制御コマンドのうち前回送信した制御コマンドの誤り検査値を付加する場合について説明する。また、今回の制御コマンドに付加される誤り検査値が所定の切替条件を満たす場合に次回の生成方式を変更する場合について説明する。また、以下の説明では、1番目、2番目、3番目、および7番目にグループA、4番目、5番目、および6番目にグループBにそれぞれ属する制御コマンドが送信されるとして説明する。また、誤り検査値の生成方式は、最初、方式αに設定されているとする。また、制御コマンドA1の誤り検査値である誤り検査値A1および制御コマンドB1の誤り検査値である誤り検査値B1は、所定の切替条件を満たす誤り検査値とする。なお、図24に示す制御コマンドの送信順番は一例であって特にこれに制限されない。
図24に示すように、最初に送信される制御コマンドA1には所定の初期値1が付加されている。2番目に送信される制御コマンドA2は、グループAに属する制御コマンドである。したがって、制御コマンドA2には、グループAに属する制御コマンドのうち1個前に送信された制御コマンドA1を用いて方式αで生成された誤り検査値A1(α)が付加される。ここで、誤り検査値A1(α)は所定の切替条件を満たすので、次回の生成方式が方式βに変更される。次に、3番目に送信される制御コマンドA3は、グループAに属する制御コマンドである。したがって、制御コマンドA3には、グループAに属する制御コマンドのうち1個前に送信された制御コマンドA2を用いて方式βで生成された誤り検査値A2(β)が付加される。次に、4番目に送信される制御コマンドB1は、グループBに属する制御コマンドで最初に送信される制御コマンドなので、所定の初期値2が付加される。次に、5番目に送信される制御コマンドB2は、グループBに属する制御コマンドである。したがって、制御コマンドB2には、グループBに属する制御コマンドのうち1個前に送信された制御コマンドB1を用いて方式βで生成された誤り検査値B1(β)が付加される。ここで、誤り検査値B1(β)は所定の切替条件を満たすので、次回の生成方式が方式αに変更される。次に、6番目に送信される制御コマンドB3は、グループBに属する制御コマンドである。したがって、制御コマンドB3には、グループBに属する制御コマンドのうち1個前に送信された制御コマンドB2を用いて方式αで生成された誤り検査値B2(α)が付加される。次に、7番目に送信される制御コマンドA4は、グループAに属する制御コマンドである。したがって、制御コマンドA4には、グループAに属する制御コマンドのうち1個前に送信された制御コマンドA3を用いて方式αで生成された誤り検査値A3(α)が付加される。以下、同様にして、今回送信される制御コマンドには、これが属するグループの制御コマンドのうち1個前に送信された制御コマンドの誤り検査値が付加される。また、今回送信される誤り検査値が所定の切替条件を満たす場合は、次回の生成方式が他の生成方式に変更される。
このように、全てのグループにおいて共通の生成方式を用いることにより、グループ毎に生成方式記憶領域を設ける必要がない。したがって、メインRAM110c、サブRAM120c等の記憶領域の消費を抑制することができる。また、グループ毎に生成方式を制御する必要がないので、構成を簡略化するとともに処理負荷の抑制を図ることができる。
また、上記実施形態では、図5に示すように、今回送信する制御コマンドに、当該制御コマンドと同一のグループに属する制御コマンドのうち1個前に送信された制御コマンドの誤り検査値を付加して制御コマンド情報とした。しかしながら、本発明はこれに限定されず、今回送信する制御コマンドと同一のグループに属する制御コマンドのうち当該制御コマンドのn(nは2以上の整数)個前に送信された制御コマンドの誤り検査値を付加して制御コマンド情報を生成するようにしてもよい。この場合、各グループにおいて、1〜n個目に送信される制御コマンドには誤り検査値のダミーデータや遊技機固有のID等を初期値として付加して制御コマンド情報とすればよい。ここで、第1の実施形態の遊技機の場合、各グループに対応するコマンド記憶領域のそれぞれを少なくともn個の制御コマンドを記憶可能に構成すればよい。また、第2の実施形態の遊技機の場合、各グループに対応する検査値記憶領域のそれぞれを少なくともn個の誤り検査値を記憶可能に構成すればよい。なお、nの値は、各グループで同一の値としてもよいし、グループ毎に異なる値としてもよい。
具体的に、n=2の場合、すなわち、今回送信する制御コマンドに、2個前に送信した制御コマンドの誤り検査値を付加する場合の制御コマンド情報の構成について、図25を用いて説明する。なお、以下の説明では、送信される制御コマンドはいずれもグループAに属する制御コマンドとして説明する。図25に示すように、制御コマンド情報は、基本的に、今回送信される制御コマンドと同一のグループAに属する制御コマンドのうち当該制御コマンドの2つ前に送信された制御コマンドの誤り検査値を付加した形式になっている。ただし、最初に送信される制御コマンドA1には所定の初期値1が付加されている。また、2つ目に送信される制御コマンドA2には初期値2が付加されている。そして、3番目に送信される制御コマンドA3には、最初に送信された制御コマンドA1の誤り検査値A1が付加され、制御コマンド情報が生成される。同様に、4番目に送信される制御コマンドA4には、2番目に送信される制御コマンドA2の誤り検査値2が付加され、制御コマンド情報が生成される。以下、同様にして制御コマンド情報が生成される。
このように、n個前に送信した制御コマンドの誤り検査値を、今回送信する制御コマンドに付加することにより、制御コマンドとそれに付加された誤り検査値との関係がより解析困難とすることができる。これにより、不正者が制御コマンド情報を搾取したとしても、不正を行うことをより困難とすることができる。
ここで、第2の実施形態において、誤り検査値生成部810は、今回送信される誤り検査値に基づいて、今回送信される制御コマンドが属するグループにおいて次回送信される誤り検査値の生成方式を決定し、この決定に応じた生成方式のみで誤り検査値を生成し、これを記憶するようにしてもよいことは上述の通りである。本発明において、n≦Mのときにも同様に、誤り検査値生成部が、今回送信される誤り検査値に基づいて、今回送信される制御コマンドが属するグループにおいて、M個後に送信される誤り検査値の生成方式を決定し、すでに決定された生成方式のみで今回送信される制御コマンドを用いて誤り検査値を生成し、これを記憶するように構成することができる。演出制御部120の誤り検査値生成部910も同様である。
また、上記実施形態では、制御コマンドのMODEとDATAの両方のデータを用いて誤り検査値を生成するとしたが、本発明の遊技機は、これに限定されない。例えば、本発明の遊技機は、制御コマンドのMODEの情報、すなわち制御コマンドの分類を識別するための1バイトのデータのみを用いて誤り検査値を生成するようにしてもよい。
さらに、本発明の遊技機は、制御コマンドとそれに付加された誤り検査値(制御コマンド情報)を用いて誤り検査値を生成してもよい。これにより、今回送信する誤り検査値が、同一グループに属する制御コマンドにそれまでに付加された誤り検査値の情報、すなわち、それまでに送信された同一グループに属する制御コマンド情報を含むことになる。したがって、誤り検査値が制御コマンドの送信履歴の情報を含むことになるので、不正者が一部の制御コマンド情報を取得したとしても誤り検査値を解析することができないようにすることができ、セキュリティ強度を向上させることができる。また、誤り検査値が制御コマンドの送信履歴の情報を含むことになるので、制御コマンドの連続性を検証することができる。
具体的に、制御コマンド情報を用いて誤り検査値を生成する場合について説明する。図26は、本実施形態における制御コマンド情報の形式を示す説明図である。図26に示すように、制御コマンド情報は、基本的に、制御コマンドにその1つ前に送信された制御コマンド情報の誤り検査値を付加した形式になっている。ただし、最初に送信される制御コマンド1には所定の初期値が付加されている。そして、2番目に送信される制御コマンド2には、最初に送信された制御コマンド情報、すなわち制御コマンド1と初期値とから生成された誤り検査値1が付加され、制御コマンド情報が生成される。同様に、3番目に送信される制御コマンド3には、2番目に送信された制御コマンド情報、すなわち、制御コマンド2と誤り検査値1とから生成された誤り検査値2が付加され、制御コマンド情報が生成される。以下、同様にして制御コマンド情報が生成される。このように、今回送信する制御コマンドに付加する誤り検査値は、同一のグループに属する全ての制御コマンド情報を用いて生成されることとなる。
制御コマンドとそれに付加された誤り検査値、すなわち制御コマンド情報を用いて誤り検査値を生成するための具体的な構成は、次のようなものが考えられる。第1の実施形態では、例えば、誤り検査値生成部において、今回送信する(今回誤り検査に用いる)誤り検査値を誤り検査値演算部から制御コマンド記憶部へ出力し、今回送信(受信)した制御コマンドと出力された誤り検査値とを合わせて制御コマンド情報として制御コマンド記憶部に記憶するように構成すればよい。また、第2の実施形態では、例えば、誤り検査値生成部において、今回送信する(今回誤り検査に用いる)誤り検査値を誤り検査値記憶部から誤り検査値演算部へ出力し、今回送信(受信)した制御コマンドと出力された誤り検査値とを用いて誤り検査値演算部が誤り検査値を生成するように構成すればよい。
また、本発明の遊技機は、過去に送信した複数の制御コマンドまたは制御コマンド情報を用いて誤り検査値を生成するようにしてもよい。これにより、制御コマンドとそれに付加された誤り検査値との関係をより解析困難とすることができ、不正者が制御コマンド情報を搾取したとしても、不正を行うことをより困難とするこができる。
過去に送信した複数の制御コマンドを用いて誤り検査値を生成するための具体的な構成は、例えば、次のようなものが考えられる。誤り検査値生成部において、制御コマンド出力部から出力された制御コマンドを複数記憶する制御コマンド記憶部を設け、この制御コマンド記憶部から出力された複数の制御コマンドを用いて誤り検査値演算部が誤り検査値を生成するように構成すればよい。
また、過去に送信した複数の制御コマンド情報を用いて誤り検査値を生成するための具体的な構成は、例えば、次のようなものが考えられる。誤り検査値生成部において、制御コマンド出力部から出力された制御コマンドと、誤り検査値演算部が生成したその誤り検査値とを制御コマンド情報として複数記憶する制御コマンド情報記憶部を設け、この制御コマンド情報記憶部から出力された複数の制御コマンド情報を用いて誤り検査値演算部が誤り検査値を生成するように構成すればよい。
なお、本発明の遊技機は、過去に送信した制御コマンド、または過去に送信した制御コマンドとその誤り検査値に加えて、今回送信する制御コマンドも含めて誤り検査値を生成してもよい。これにより、今回受信した制御コマンドの通信エラーチェックを、今回受信した制御コマンドに付加された誤り検査値を用いて、リアルタイムに行うことができる。
今回送信する制御コマンドも含めて誤り検査値を生成するための具体的な構成は、例えば、次のようなものが考えられる。誤り検査値を生成する対象となるデータである過去に送信した1つまたは複数の制御コマンドまたは制御コマンド情報を記憶する記憶部を設け、記憶部から出力された1つまたは複数の制御コマンドまたは制御コマンド情報と、制御コマンド出力部から出力された今回送信する制御コマンドとを用いて誤り検査値を生成するように構成すればよい。
このように、本発明の遊技機は、過去に送信した制御コマンド、または過去に送信した制御コマンドとその誤り検査値に加えて、今回送信する制御コマンドも含めて誤り検査値を生成してもよいが、セキュリティ強度の向上という観点においては、今回送信する制御コマンドの誤り検査値を、今回送信する制御コマンド自身を用いずに生成する方が好ましい。具体的には、過去に送信した制御コマンド、または過去に送信した制御コマンドとその誤り検査値とを用いて、今回送信する制御コマンドに付加する誤り検査値を生成するのが好ましい。このように、今回送信する制御コマンドを用いずに誤り検査値を生成する場合、今回送信する制御コマンドとそれに付加された誤り検査値との間に関連性がない。このため、不正者が、制御コマンドとそれに付加された誤り検査値との二つの値を取得したとしても、これらの関係を解析することができない。したがって、不正者が制御コマンドとそれに付加された誤り検査値との関係を解析することをより一層困難とすることができる。すなわち、不正者が制御コマンド情報を取得したとしても、不正を行うことをより一層困難とするこができる。
また、上記実施形態では、認証処理を行う演出制御部120(周辺部300)も、主制御部110と同様に制御コマンドのグループを識別し、そのグループ情報と生成方式の情報とに基づいて生成または選択された誤り検査値と主制御部110から送信された誤り検査値とを用いて誤り検査を行っているが、本発明はこれに限定されない。例えば、本発明では、演出制御部(周辺部)は、制御コマンドのグループを識別した結果であるグループ情報と、誤り検査値に基づいて決定された生成方式の情報とに基づいて誤り検査値を生成または選択することを必ずしも行わなくても良い。この場合、演出制御部(周辺部)は、過去に受信した複数の制御コマンドのそれぞれを用いて複数の生成方式で誤り検査値を生成し、受信した誤り検査値と、生成した複数の誤り検査値のいずれかとが一致するか否かによって認証処理を行うようにしてもよい。このように構成した場合であっても、制御コマンドとそれに付加される誤り検査値との時系列的な関係が不規則になる。したがって、制御コマンドとそれに付加される誤り検査値との関連性の解析を困難とすることができ、不正者が制御コマンドおよびそれに付加された誤り検査値を取得したとしても、不正を行うことを困難にすることができる。
また、上記実施形態では、誤り検査値生成部は、制御部と、制御コマンド記憶部(または、誤り検査値記憶部)と、誤り検査値演算部と、のそれぞれ異なる機能を有する3つの手段を備えるとして説明したが、本発明はこれに限定されない。例えば、誤り検査値生成部の内部構成において、2以上の機能を1つの手段で実現するように構成してもよい。
また、上記実施形態では、主制御部110は、制御コマンドに所定の初期値を付加して送信し、演出制御部120は、同様に所定の初期値を用いて認証を行うとしたが、本発明はこれに限定されず、初期値が付加された制御コマンドに関し認証処理を行わないようにしてもよい。例えば、同一グループ内でN(Nは正整数)個前に送信した制御コマンド情報を用いて今回送信する制御コマンドに付加する誤り検査値を生成する場合、演出制御部120は、当該グループ内で1〜N個目に受信した制御コマンド情報については初期値が付加されているものがあるので、そのような制御コマンドに関しては認証処理を行わず、N+1個目以降に受信した制御コマンド情報から全ての制御コマンド情報について認証処理を行うようにしてもよい。
また、主制御部110に計時手段を設け、または、主制御部110が予め備えている計時手段を用いて、制御コマンドの送信タイミングにおいて計時手段から取得した計時情報を初期値として用いてもよい。これにより、誤り検査値を遊技機1の状態に特有の値とすることができ、初期値の値を知らない不正者が一部の制御コマンド情報を取得したとしても誤り検査値の解析を不可能とすることができ、セキュリティ強度をより一層向上させることができる。なお、この場合、上述のように、演出制御部120では、初期値が付加された制御コマンドに関し認証処理を行わないようにすればよい。また、2個以上の制御コマンドに初期値として計時情報が付加される場合において、演出制御部120は、初期値として連続して送信された計時情報の間に時間の連続性が保持されているか、すなわち、連続して送信された計時情報の値が送信順番に従って増加しているか否かを参照することによって認証処理を行ってもよい。
このように本発明において、初期値として用いる固有情報に計時情報を含めてもよい。すなわち、固有情報は、制御コマンドの送信タイミングにおいて初期値を取得する遊技機1に固有の情報といえる。なお、計時情報としては、遊技機1の電源がオンになってから主制御部110の計時手段が計測する遊技機1に固有の計時情報を用いてもよく、絶対時間の情報を用いてもよい。遊技機1に固有の計時情報を用いることにより、初期値の秘匿性を高めることができ、セキュリティ強度をより一層向上させることができる。
また、複数の制御コマンドに初期値を付加する場合、複数の制御コマンドについて同一の初期値を付加してもよいし、異なる初期値を付加してもよい。例えば、初期値として識別情報を用いる場合、制御コマンド毎に異なる識別情報を用いてもよいし、同じ識別情報を用いてもよい。また、初期値として計時情報を用いる場合、制御コマンドの送信タイミング毎に計時手段から取得した計時情報を用いてもよいし、最初に送信する制御コマンドの送信タイミングに取得した計時情報を複数の制御コマンドに対して初期値として用いてもよい。
また、上記実施形態では、主制御部110および演出制御部120は、CPU、ROM、およびRAMを用いてソフトウェアによって認証機能を実現していたが、これに限定されず、誤り検査値を生成するための生成回路や誤り検査を行う検査回路等を設け、ハードウェアによって認証機能を実現してもよい。
また、上記実施形態では、本発明をパチンコ遊技機に適用する例を示したが、これに限定されず、本発明は、雀球遊技機、アレンジボール等のパチンコ遊技機以外の弾球遊技機、スロットマシン等の回胴式遊技機などの他の遊技機にも適用することができる。これらの遊技機においても、上記実施形態と同様に構成することにより、上記実施形態と同様の効果を得ることができる。
また、上記実施形態では、本発明を遊技機に適用する例を示したが、これに限定されず、本発明は、遊技機のような複数の制御部を備え、これら制御部間のデータ伝送について認証処理を実行する電子機器およびその認証方法にも適用することができる。これらの電子機器およびその認証方法においても、本実施形態と同様に構成することにより、上記実施形態と同様の効果を得ることができる。また、上記実施形態は、その目的及び構成等に特に矛盾や問題がない限り、互いの技術を流用することができる。