説明

遊技機および電子機器の認証方法

【課題】セキュリティ強度を向上させることができる遊技機を提供する。
【解決手段】主制御部は、今回送信する制御コマンドのグループを識別し(ステップS712)、過去に出力された制御コマンドを用いて(ステップS716)制御コマンドの正当性を検査する誤り検査値を生成し、生成した誤り検査値を制御コマンドに付加して(ステップS723)中間制御部に送信し(ステップS727)、中間制御部で誤り検査を行って演出制御部に送信することにより、簡易な方法で、制御コマンドとそれに付加された誤り検査値の関係を不正者が解析することを困難にしている。したがって、不正者が制御コマンドおよびそれに付加された誤り検査値を搾取したとしても不正を行うことを困難にすることができ、簡易な方法で遊技機のセキュリティ強度を向上させることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パチンコ店等の遊技店に設置されるパチンコ遊技機、雀球遊技機、アレンジボール等の弾球遊技機、スロットマシン等の回胴式遊技機などの遊技機に関する。また、本発明は、複数の制御部を備える電子機器における各制御部間のデータ伝送の認証方法に関する。
【背景技術】
【0002】
遊技機に対し行われる、メダルや遊技球など(以下、「遊技媒体」という)を遊技とは無関係に強制的に払い出させる不正行為のうち、遊技に係る基本動作を制御する主制御部が搭載された主制御基板や、主制御部からの制御命令に基づき演出処理等を実行する周辺部が搭載された周辺基板に関するものとして、例えば以下に示すものがある。
(1)正規な主制御基板と不正な主制御基板との交換
(2)主制御基板に搭載されたCPUが実行する正規なプログラムが記憶されたROMと上記プログラムを改ざんした不正なプログラムが記憶されたROMとの交換
(3)主制御基板と周辺基板との間に不正な基板(なりすまし基板)を設け、かつ上記(2)のROMの交換
【0003】
このような不正行為を防止するため、従来の遊技機には、次のようなものがあった。例えば、特許文献1に記載の遊技機は、主制御基板は、制御コマンドを生成してサブ制御基板に送信する第1送信手段と、第1送信手段が所定期間内に送信した制御コマンドのチェックサムを状態監視コマンドとして所定のタイミングで送信する第2送信手段とを備えている。特許文献1に記載の遊技機は、サブ制御基板が、所定期間内に受信した制御コマンドのチェックサムと、所定のタイミングで受信した状態監視コマンドとを比較することで、所定期間内に送信された制御コマンドの正当性を検証している。すなわち、特許文献1に記載の遊技機は、制御コマンドの正当性を検証するための状態監視コマンドを所定のタイミングで送信することで、上記不正行為の防止を図っている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−18095号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の遊技機では、所定のタイミングで状態監視コマンドを単独で送信する処理を行っている。状態監視コマンドは、上述のように所定期間内に送信した制御コマンドのチェックサムなので、状態監視コマンドと通常の制御コマンドとはデータ形式あるいはデータ量が著しく異なる情報である。したがって、特許文献1に記載の遊技機では、不正行為を行う者(以下、不正者という)は状態監視コマンドの送信タイミングを容易に知ることができ、不正検出のための検査タイミングを容易に知ることができる。そして、状態監視コマンドの送信タイミングを知ることができる不正者が、状態監視コマンドを取得して内容を解析する虞があった。
【0006】
また、特許文献1に記載の遊技機では、制御コマンドにそのチェックサムを付加して送信している。制御コマンドにそのチェックサムを付加して送信することにより、通信エラーチェックを行うことは一般的に行われることである。特許文献1に記載の遊技機でも同様に、制御コマンドにそのチェックサムを付加している。しかしながら、これにより、特許文献1に記載の遊技機では、不正者が制御コマンドを取得して状態監視コマンドの内容を解析することが容易になっている。具体的には、不正者が、状態監視コマンドの送信タイミングを容易に知ることができるのは上述したとおりである。このため、状態監視コマンドの送信タイミングを知った不正者が、所定期間内の制御コマンドとそのチェックサムを取得して、制御コマンドとチェックサムと状態監視コマンドを比較することで、制御コマンドに付加されたチェックサムの内容および状態監視コマンドの内容を容易に解析することができるという虞があった。
【0007】
本発明は、上記事情に鑑みてなされたものであり、上記不正行為を防止してセキュリティ強度を向上させることができる遊技機を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために本発明は、制御コマンドを出力する主制御部(主制御部110)と、前記制御コマンドに基づく処理を行う周辺部(周辺部300)と、前記主制御部と前記周辺部との間に設けられた中間制御部(中間制御部180)とを備える遊技機(遊技機1)であって、
前記主制御部は、前記制御コマンドを出力するコマンド出力手段(制御コマンド出力部500)と、前記コマンド出力手段によって出力された制御コマンドの正当性を検査する誤り検査値を生成する第1検査値生成手段(誤り検査値生成部510)と、前記第1検査値生成手段によって生成された前記誤り検査値を、前記コマンド出力手段によって出力された前記制御コマンドに付加した制御コマンド情報を生成する検査値付加手段(付加部550)と、前記検査値付加手段によって生成された前記制御コマンド情報を前記中間制御部に送信する第1送信手段(送信部560)と、を備え、
前記中間制御部は、前記第1送信手段によって送信された制御コマンド情報を受信し、前記制御コマンドと前記誤り検査値とを分離する受信手段(受信部600)と、前記受信手段によって受信された制御コマンドに基づいて誤り検査値を生成する第2検査値生成手段(誤り検査値生成部610)と、前記受信手段によって受信された誤り検査値と、前記第2検査値生成手段によって生成された誤り検査値とを用いて、受信された前記制御コマンドの正当性の検査を行い、検査結果を出力する検査手段(誤り検査部650)と、前記制御コマンドと前記検査結果とを前記周辺部に送信する第2送信手段と、を備え、
前記周辺部は、前記第2送信手段により送信された前記制御コマンドおよび前記検査結果に基づいた処理を行う周辺部制御手段(サブCPU120a)を備え、
前記第1検査値生成手段は、前記コマンド出力手段によって今回出力された制御コマンドが、予め決められた複数のグループのうちのいずれのグループに属するかを識別する第1識別手段(識別制御部520)と、前記第1識別手段に識別された識別情報に基づいて、前記グループごとに前記制御コマンドを記憶する第1記憶手段(記憶部530)と、前記識別情報に基づいて、所定の前記グループに対応して記憶された過去に出力された制御コマンドを複数選択し、該選択した制御コマンドを構成するビット情報の一部をそれぞれ抽出し、該抽出したビット情報に基づいて前記誤り検査値を生成する第1演算手段(誤り検査値演算部540)と、を有することを特徴とする。
【発明の効果】
【0009】
本発明によれば、コマンド出力手段によって今回出力された制御コマンドが、複数のグループのうちのいずれのグループに属するかを識別して、識別したグループに対応する過去に出力された複数の制御コマンドを用いて誤り検査値を生成し、この生成した誤り検査値を今回出力する制御コマンドに付加して中間制御部に送信し、中間制御部で誤り検査を行って制御コマンドおよび検査結果を周辺部に送信する。このように、制御コマンドがグループによって複数に振り分けられ、かつ、複数の制御コマンドからビット情報を少しずつ取り出して再構成した新たなビット情報によって誤り検査値を生成することにより、制御コマンドとそれに付加された誤り検査値の関係を不正者が解析することを困難にしている。したがって、不正者が制御コマンドおよびそれに付加された誤り検査値を搾取したとしても不正を行うことを困難にすることができる。すなわち、本発明によれば、簡易な方法で遊技機のセキュリティ強度を向上させることができる。
【図面の簡単な説明】
【0010】
【図1】遊技機の外観構成を示す正面図である。
【図2】遊技機のガラス枠を開放させた状態の外観構成を示す斜視図である。
【図3】遊技機の裏面側の外観構成を示す斜視図である。
【図4】遊技機の内部構成を示すブロック図である。
【図5】主制御部の認証処理に関する構成を示すブロック図である。
【図6】制御コマンド情報の形式を説明する説明図である。
【図7】中間制御部の認証処理に関する構成を示すブロック図である。
【図8】主制御部から演出制御部へ送信される制御コマンドの種別を示す図である。
【図9】主制御部によるメイン処理におけるフローチャートを示す図である。
【図10】主制御部による割込処理におけるフローチャートを示す図である。
【図11】主制御部による特図特電制御処理におけるフローチャートを示す図である。
【図12】主制御部による特別図柄記憶判定処理におけるフローチャートを示す図である。
【図13】主制御部による制御コマンド送信処理におけるフローチャートを示す図である。
【図14】中間制御部によるメイン処理におけるフローチャート(1)を示す図である。
【図15】中間制御部によるメイン処理におけるフローチャート(2)を示す図である。
【図16】演出制御部によるメイン処理におけるフローチャートを示す図である。
【図17】演出制御部による割込処理におけるフローチャートを示す図である。
【図18】演出制御部によるコマンド解析処理1におけるフローチャートを示す図である。
【図19】演出制御部によるコマンド解析処理2におけるフローチャートを示す図である。
【図20】演出制御部による認証結果データ解析処理におけるフローチャートを示す図である。
【図21】主制御部による制御コマンド送信処理の他の例(変形例1)におけるフローチャート(1)を示す図である。
【図22】主制御部による制御コマンド送信処理の他の例(変形例1)におけるフローチャート(2)を示す図である。
【図23】制御コマンド情報の形式の他の例(変形例1)を説明する説明図である。
【図24】中間制御部による認証処理の他の例(変形例1)におけるフローチャート(1)を示す図である。
【図25】中間制御部による認証処理の他の例(変形例1)におけるフローチャート(2)を示す図である。
【図26】主制御部による制御コマンド送信処理の他の例(変形例2)におけるフローチャート(1)を示す図である。
【図27】主制御部による制御コマンド送信処理の他の例(変形例2)におけるフローチャート(2)を示す図である。
【図28】制御コマンド情報の形式の他の例(変形例2)を説明する説明図である。
【図29】中間制御部による認証処理の他の例(変形例2)におけるフローチャート(1)を示す図である。
【図30】中間制御部による認証処理の他の例(変形例2)におけるフローチャート(2)を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明を実施するための形態について、図面を参照しながら説明する。具体的には、本発明の遊技機の一実施形態であるパチンコ遊技機1(以下、「遊技機1」という)について説明する。
【0012】
[遊技機の構成]
以下に、本発明の遊技機の一実施形態である遊技機1の構成について説明する。
図1は、本実施形態に係る遊技機1の外観構成を示す正面図である。図2は、本実施形態に係る遊技機1のガラス枠を開放させた状態の外観構成を示す斜視図である。図3は、本実施形態に係る遊技機1の裏面側の外観構成を示す斜視図である。
【0013】
遊技機1は、遊技店の島設備に取り付けられる外枠60と、その外枠60と回動可能に支持されたガラス枠50とが備えられている(図1、図2参照)。また、外枠60には、遊技球200が流下する遊技領域6が形成された遊技盤2が設けられている。ガラス枠50には、回動操作されることにより遊技領域6に向けて遊技球を発射させる操作ハンドル3と、スピーカからなる音声出力装置32と、複数のランプを有する演出用照明装置34と、押圧操作により演出態様を変更させるための演出ボタン35とが設けられている。
【0014】
さらに、ガラス枠50には、複数の遊技球200を貯留する受け皿40が設けられており、この受け皿40は、操作ハンドル3の方向側に遊技球200が流下するように下りの傾斜を有している(図2参照)。この受け皿40の下りの傾斜の端部には、遊技球を受け入れる図示しない受入口が設けられており、この受入口に受け入れられた遊技球は、玉送りソレノイド4bが駆動することにより、ガラス枠50の裏面に設けられた玉送り開口部41へ1個ずつ送り出される。そして、玉送り開口部41へ送り出された遊技球は、打出部材4cの方向に向けて下り傾斜を有している発射レール42により、発射レール42の下り傾斜の端部に誘導される。発射レール42の下り傾斜の端部の上方には、遊技球を停留させるストッパー43が設けられており、玉送り開口部41から送り出された遊技球200は、発射レール42の下り傾斜の端部で1個の遊技球が停留されることになる(図2参照)。
【0015】
そして、遊技者が操作ハンドル3を回動させると、操作ハンドル3に直結している発射ボリューム3b(図4参照)も回動し、発射ボリューム3bにより遊技球の発射強度が調整され、調整された発射強度で発射用ソレノイド4a(図4参照)に直結された打出部材4cが回転する。この打出部材4cが回転することで、打出部材4cにより発射レール42の下り傾斜の端部に貯留されている遊技球200が打ち出され、遊技球が遊技領域6に発射されることとなる。
【0016】
上記のようにして発射された遊技球は、発射レール42からレール5a、5b間を上昇して玉戻り防止片5cを超えると、遊技領域6に到達し、その後遊技領域6内を落下する。このとき、遊技領域6に設けられた複数の釘や風車によって、遊技球は予測不能に落下することとなる。
【0017】
また、上記遊技領域6には、複数の一般入賞口12が設けられている。これら各一般入賞口12には、一般入賞口検出スイッチ12a(図4参照)が設けられており、この一般入賞口検出スイッチ12aが遊技球の入賞を検出すると、所定の賞球(例えば10個の遊技球)が払い出される。
【0018】
また、上記遊技領域6の中央下側の領域には、遊技球が入球可能な始動領域を構成する第1始動口14および第2始動口15と、遊技球が入球可能な第2大入賞口17とが設けられている。
【0019】
この第2始動口15は、一対の可動片15bを有しており、これら一対の可動片15bが閉状態に維持される態様(以下、「第1の態様」という)と、一対の可動片15bが開状態となる態様(以下、「第2の態様」という)とに可動制御される。なお、第2始動口15が上記第1の態様に制御されているときには、当該第2始動口15の真上に位置する第2大入賞口17の入賞部材が障害物となって、遊技球の受入れを不可能としている。一方で、第2始動口15が上記第2の態様に制御されているときには、上記一対の可動片15bが受け皿として機能し、第2始動口15への遊技球の入賞が容易となる。つまり、第2始動口15は、第1の態様にあるときには遊技球の入賞機会がなく、第2の態様にあるときには遊技球の入賞機会が増すこととなる。
【0020】
ここで、第1始動口14には遊技球の入球を検出する第1始動口検出スイッチ14a(図4参照)が設けられ、第2始動口15には遊技球の入球を検出する第2始動口検出スイッチ15a(図4参照)が設けられている。そして、第1始動口検出スイッチ14aまたは第2始動口検出スイッチ15aが遊技球の入球を検出すると、特別図柄判定用乱数値等を取得し、後述する大当たり遊技を実行する権利獲得の抽選(以下、「大当たりの抽選」という)が行われる。また、第1始動口検出スイッチ14aまたは第2始動口検出スイッチ15aが遊技球の入球を検出した場合にも、所定の賞球(例えば3個の遊技球)が払い出される。
【0021】
また、第2大入賞口17は、遊技盤2に形成された開口部から構成されている。この第2大入賞口17の下部には、遊技盤面側からガラス板52側に突出可能な第2大入賞口開閉扉17bを有しており、この第2大入賞口開閉扉17bが遊技盤面側に突出する開放状態と、遊技盤面に埋没する閉鎖状態とに可動制御される。そして、第2大入賞口開閉扉17bが遊技盤面に突出していると、遊技球を第2大入賞口17内に導く受け皿として機能し、遊技球が第2大入賞口17に入球可能となる。この第2大入賞口17には第2大入賞口検出スイッチ17a(図4参照)が設けられており、この第2大入賞口検出スイッチ17aが遊技球の入球を検出すると、予め設定された賞球(例えば15個の遊技球)が払い出される。
【0022】
さらに、上記遊技領域6の右側の領域には、遊技球が通過可能な普通領域を構成する普通図柄ゲート13と、遊技球が入球可能な第1大入賞口16とが設けられている。
このため、操作ハンドル3を大きく回動させ、強い力で打ち出された遊技球でないと、普通図柄ゲート13と第1大入賞口16とには遊技球が、通過または入賞しないように構成されている。
【0023】
この普通図柄ゲート13には、遊技球の通過を検出するゲート検出スイッチ13a(図4参照)が設けられており、このゲート検出スイッチ13aが遊技球の通過を検出すると、普通図柄判定用乱数値を取得し、後述する「普通図柄の抽選」が行われる。
【0024】
第1大入賞口16は、通常は第1大入賞口開閉扉16bによって閉状態に維持されており、遊技球の入球を不可能としている。これに対して、後述する特別遊技が開始されると、第1大入賞口開閉扉16bが開放されるとともに、この第1大入賞口開閉扉16bが遊技球を第1大入賞口16内に導く受け皿として機能し、遊技球が第1大入賞口16に入球可能となる。第1大入賞口16には第1大入賞口検出スイッチ16a(図4参照)が設けられており、この第1大入賞口検出スイッチ16aが遊技球の入球を検出すると、予め設定された賞球(例えば15個の遊技球)が払い出される。
【0025】
さらには、遊技領域6の最下部であって遊技領域6の最下部の領域には、一般入賞口12、第1始動口14、第2始動口15、第1大入賞口16および第2大入賞口17のいずれにも入球しなかった遊技球を排出するためのアウト口11が設けられている。
【0026】
また、遊技領域6の中央には、遊技球の流下に影響を与える飾り部材7が設けられている。この飾り部材7の略中央部分には、液晶表示装置31が設けられており、この液晶表示装置31の上方には、ベルトの形をした演出用駆動装置33が設けられている。
なお、本実施形態においては、液晶表示装置31を液晶表示器として用いているが、有機ELディスプレイを用いてもよいし、プロジェクター、円環状の構造物からなるリール、いわゆる7セグメントLED、ドットマトリクス等の表示装置等を用いてもよい。
【0027】
この液晶表示装置31は、遊技が行われていない待機中に画像を表示したり、遊技の進行に応じた画像を表示したりする。なかでも、後述する大当たりの抽選結果を報知するための3個の演出図柄36が表示され、特定の演出図柄36の組合せ(例えば、777等)が停止表示されることにより、大当たりの抽選結果として大当たりが報知される。
より具体的には、第1始動口14または第2始動口15に遊技球が入球したときには、3個の演出図柄36をそれぞれスクロール表示するとともに、所定時間経過後に当該スクロールを停止させて、演出図柄36を停止表示するものである。また、この演出図柄36の変動表示中に、さまざまな画像やキャラクタ等を表示することによって、大当たりに当選するかもしれないという高い期待感を遊技者に与えるようにもしている。
【0028】
上記演出用駆動装置33は、その動作態様によって遊技者に期待感を与えるものである。演出用駆動装置33は、例えば、ベルトが下方に移動したり、ベルト中央部の回転部材が回転したりする動作を行う。これら演出用駆動装置33の動作態様によって、遊技者にさまざまな期待感を与えるようにしている。
【0029】
さらに、上記の各種の演出装置に加えて、音声出力装置32は、バックグラウンドミュージック、サウンドエフェクト等を出力し、サウンドによる演出を行い、演出用照明装置34は、各ランプの光の照射方向や発光色を変更して、照明による演出を行うようにしている。
【0030】
また、演出ボタン35は、例えば、上記液晶表示装置31に当該演出ボタン35を操作するようなメッセージが表示されたときのみ有効となる。演出ボタン35には、演出ボタン検出スイッチ35a(図4参照)が設けられており、この演出ボタン検出スイッチ35aが遊技者の操作を検出すると、この操作に応じてさらなる演出が実行される。
【0031】
遊技領域6の右下方には、第1特別図柄表示装置20、第2特別図柄表示装置21、普通図柄表示装置22、第1特別図柄保留表示器23、第2特別図柄保留表示器24、普通図柄保留表示器25が設けられている。
【0032】
上記第1特別図柄表示装置20は、第1始動口14に遊技球が入球したことを契機として行われた大当たりの抽選結果を報知するものであり、7セグメントのLEDで構成されている。つまり、大当たりの抽選結果に対応する特別図柄が複数設けられており、この第1特別図柄表示装置20に大当たりの抽選結果に対応する特別図柄を表示することによって、抽選結果を遊技者に報知するようにしている。例えば、大当たりに当選した場合には「7」が表示され、ハズレであった場合には「−」が表示される。このようにして表示される「7」や「−」が特別図柄となるが、この特別図柄はすぐに表示されるわけではなく、所定時間変動表示された後に、停止表示されるようにしている。
【0033】
ここで、「大当たりの抽選」とは、第1始動口14または第2始動口15に遊技球が入球したときに、特別図柄判定用乱数値を取得し、取得した特別図柄判定用乱数値が「大当たり」に対応する乱数値であるか、「小当たり」に対応する乱数値であるかの判定する処理をいう。この大当たりの抽選結果は即座に遊技者に報知されるわけではなく、第1特別図柄表示装置20において特別図柄が点滅等の変動表示を行い、所定の変動時間を経過したところで、大当たりの抽選結果に対応する特別図柄が停止表示して、遊技者に抽選結果が報知されるようにしている。なお、第2特別図柄表示装置21は、第2始動口15に遊技球が入球したことを契機として行われた大当たりの抽選結果を報知するためのもので、その表示態様は、上記第1特別図柄表示装置20における特別図柄の表示態様と同一である。
【0034】
また、本実施形態において「大当たり」というのは、第1始動口14または第2始動口15に遊技球が入球したことを条件として行われる大当たりの抽選において、大当たり遊技を実行する権利を獲得したことをいう。「大当たり遊技」においては、第1大入賞口16または第2大入賞口17が開放されるラウンド遊技を計15回行う。各ラウンド遊技における第1大入賞口16または第2大入賞口17の最大開放時間については予め定められた時間が設定されており、この間に第1大入賞口16または第2大入賞口17に所定個数の遊技球(例えば9個)が入球すると、1回のラウンド遊技が終了となる。つまり、「大当たり遊技」は、第1大入賞口16または第2大入賞口17に遊技球が入球するとともに、当該入球に応じた賞球を遊技者が獲得できる遊技である。
【0035】
本実施形態では、「大当たりの抽選」においては、その当選確率により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回開放される。なお、本実施形態では、「大当たり遊技」と「小当たり遊技」とを総称して「特別遊技」という。
【0036】
また、普通図柄表示装置22は、普通図柄ゲート13を遊技球が通過したことを契機として行われる普通図柄の抽選結果を報知するためのものである。詳しくは後述するが、この普通図柄の抽選によって当たりに当選すると普通図柄表示装置22が点灯し、その後、上記第2始動口15が所定時間、第2の態様に制御される。
【0037】
ここで、「普通図柄の抽選」とは、普通図柄ゲート13に遊技球が通過したときに、普通図柄判定用乱数値を取得し、取得した普通図柄判定用乱数値が「当たり」に対応する乱数値であるかどうかを判定する処理をいう。この普通図柄の抽選結果についても、普通図柄ゲート13を遊技球が通過して即座に抽選結果が報知されるわけではなく、普通図柄表示装置22において普通図柄が点滅等の変動表示を行い、所定の変動時間を経過したところで、普通図柄の抽選結果に対応する普通図柄が停止表示して、遊技者に抽選結果が報知されるようにしている。
【0038】
さらに、特別図柄の変動表示中や後述する特別遊技中等、第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において表示される。
【0039】
ガラス枠50は、遊技盤2の前方(遊技者側)において遊技領域6を視認可能に覆うガラス板52を支持している。なお、ガラス板52は、ガラス枠50に対して着脱可能に固定されている。
【0040】
またガラス枠50は、左右方向の一端側(たとえば遊技機1に正対して左側)においてヒンジ機構部51を介して外枠60に連結されており、ヒンジ機構部51を支点として左右方向の他端側(たとえば遊技機1に正対して右側)を外枠60から開放させる方向に回動可能とされている。ガラス枠50は、ガラス板52とともに遊技盤2を覆い、ヒンジ機構部51を支点として扉のように回動することによって、遊技盤2を含む外枠60の内側部分を開放することができる。ガラス枠50の他端側には、ガラス枠50の他端側を外枠60に固定するロック機構が設けられている。ロック機構による固定は、専用の鍵によって解除することが可能とされている。また、ガラス枠50には、ガラス枠50が外枠60から開放されているか否かを検出する扉開放スイッチ133(図4参照)も設けられている。
【0041】
遊技機1の裏面には、主制御部110が搭載された主制御基板、演出制御部120が搭載された演出制御基板、払出制御部130が搭載された払出制御基板、電源部170が搭載された電源基板、遊技情報出力端子板30などが設けられている。また、電源部170に遊技機1に電力を給電するための電源プラグ171や、図示しない電源スイッチが設けられている。
【0042】
[遊技機の内部構成]
以下、本発明の実施形態に係る遊技機1の遊技進行に係る処理を制御する制御手段について説明する。
図4は、本実施形態に係る遊技機1の内部構成を示すブロック図である。
【0043】
主制御部110は、遊技の基本動作を制御する主制御手段であり、第1始動口検出スイッチ14a等の各種検出信号を入力して、第1特別図柄表示装置20や第1大入賞口開閉ソレノイド16c等を駆動させて遊技を制御するものである。
【0044】
この主制御部110は、メインCPU110aと、メインROM110bと、メインRAM110cと、主制御用の入力ポートおよび出力ポート(図示せず)とを少なくとも備えている。
【0045】
この主制御用の入力ポートには、払出制御部130、一般入賞口12に遊技球が入球したことを検知する一般入賞口検出スイッチ12a、普通図柄ゲート13に遊技球が入球したことを検知するゲート検出スイッチ13a、第1始動口14に遊技球が入球したことを検知する第1始動口検出スイッチ14a、第2始動口15に遊技球が入球したことを検知する第2始動口検出スイッチ15a、第1大入賞口16に遊技球が入球したことを検知する第1大入賞口検出スイッチ16a、第2大入賞口17に遊技球が入球したことを検知する第2大入賞口検出スイッチ17aが接続されている。この主制御用の入力ポートによって、各種信号が主制御部110に入力される。
【0046】
また、主制御用の出力ポートには、払出制御部130、第2始動口15の一対の可動片15bを開閉動作させる始動口開閉ソレノイド15c、第1大入賞口開閉扉16bを動作させる第1大入賞口開閉ソレノイド16c、第2大入賞口開閉扉17bを動作させる第2大入賞口開閉ソレノイド17c、特別図柄を表示する第1特別図柄表示装置20と第2特別図柄表示装置21、普通図柄を表示する普通図柄表示装置22、特別図柄の保留球数を表示する第1特別図柄保留表示器23と第2特別図柄保留表示器24、普通図柄の保留球数を表示する普通図柄保留表示器25、外部情報信号を出力する遊技情報出力端子板30が接続されている。この主制御用の出力ポートによって、各種信号が出力される。
【0047】
主制御部110のメインCPU110aは、各検出スイッチやタイマからの入力信号に基づいて、メインROM110bに記憶されたプログラムを読み出して演算処理を行うとともに、演算処理の結果に応じて主制御部110を構成する各構成部への制御指示(以下、「制御信号」という)や主制御部110外の他の制御部への制御コマンドを出力したりする。
【0048】
主制御部110のメインROM110bには、遊技進行に係る処理の内容や手順を記述した遊技処理用プログラムや、各種の遊技の決定に必要な固定データ、テーブルが予め記憶されている。
メインROM110bに記憶されたテーブルとして一例を挙げれば、大当たり抽選に参照される大当たり判定テーブル、普通図柄の抽選に参照される当たり判定テーブル、特別図柄の停止図柄を決定する図柄決定テーブル、大当たり終了後の遊技状態を決定するための大当たり遊技終了時設定データテーブル、大入賞口開閉扉の開閉条件を決定する特別電動役物作動態様決定テーブル、大入賞口開放態様テーブル、特別図柄の変動パターンを決定する変動パターン決定テーブルなどがある。
【0049】
また、本実施の形態において、メインROM110bには、メインCPU110aが、主制御部110から中間制御部180を介して演出制御部120に送信される制御コマンドの正当性を認証するために用いる誤り検査値を生成し、生成した誤り検査値を制御コマンドに付加して演出制御部120に送信する処理を行うためのプログラムや、誤り検査値を生成するために必要なデータなどが記憶されている。なお、主制御部110が行う制御コマンドの正当性を認証する認証処理に係る処理の詳細については後述する。
【0050】
主制御部110のメインRAM110cは、メインCPU110aの演算処理時におけるデータのワークエリアとして機能し、複数の記憶領域を有している。
メインRAM110cが有する記憶領域として一例を挙げれば、普通図柄保留数(G)記憶領域、普通図柄保留記憶領域、普通図柄データ記憶領域、第1特別図柄保留数(U1)記憶領域、第2特別図柄保留数(U2)記憶領域、第1特別図柄乱数値記憶領域、第2特別図柄乱数値記憶領域、ラウンド遊技回数(R)記憶領域、開放回数(K)記憶領域、大入賞口入球数(C)記憶領域、遊技状態記憶領域(高確率遊技フラグ記憶領域等)、高確率遊技回数(X)カウンタ、遊技状態バッファ、停止図柄データ記憶領域、送信データ用記憶領域、特別図柄時間カウンタ、特別遊技タイマカウンタなど各種のタイマカウンタなどがある。また、本実施形態において、メインRAM110cが有する記憶領域として誤り検査値を生成するために用いるデータである制御コマンドを記憶しておくコマンド記憶領域がある。
【0051】
中間制御部180は、主に主制御部110に対する認証に係る処理(認証処理)を制御する。この中間制御部180は、CPU180a、ROM180b、RAM180cを備えており、主制御部110と、主制御部110が本来の遊技処理に係る制御コマンドを送信する対象となる制御部(演出制御部120や払出制御部130等)との間に設けられている。例えば、図4に示すように、中間制御部180が主制御部110と演出制御部120との間に設けられている場合、中間制御部180は、主制御部110から中間制御部180への一方向に通信可能に接続され、中間制御部180から演出制御部120への一方向に通信可能に接続される。また、図示しないが、中間制御部180が主制御部110と払出制御部130との間に設けられている場合、中間制御部180は、主制御部110との間で双方向に通信可能に接続され、払出制御部130との間で双方向に通信可能に接続される。よって、中間制御部180が介在する場合、演出制御部120や払出制御部130等は、主制御部110から直接制御コマンドを送信されず、中間制御部180を介して送信されることとなる。
【0052】
また、中間制御部180は、主制御部110と同様の方法で誤り検査値を生成する。中間制御部180は、主制御部110から送信された誤り検査値と生成した誤り検査値とを用いて、制御コマンドの正当性を認証する認証処理を行う。なお、中間制御部180が行う認証処理および認証処理に係る構成の詳細については後述する。
【0053】
中間制御部180のCPU180aは、主制御部110から送信された制御コマンドおよび誤り検査値に基づいて、ROM180bに記憶されたプログラムを読み出して認証処理を行うとともに、当該処理から得られた認証結果を後続する演出制御部120や払出制御部130等へ送信する。ROM180bは、主制御部110から送信された誤り検査値を用いて、その誤り検査値が付加された制御コマンドの正当性を認証する処理を行うためのプログラムが予め記憶されている。RAM180cは、CPU180aの演算処理時におけるデータのワークエリアとして機能する。本実施の形態において、RAM180cが有する記憶領域として、メインRAM110cと同様に、誤り検査値を生成するために用いるデータである制御コマンドを記憶しておくコマンド記憶領域がある。
【0054】
例えば、中間制御部180のCPU180aは、主制御部110から送信された制御コマンドであって、認証処理に直接関与しない各種データを受信すると、当該制御コマンドや各種データを後続する演出制御部120や払出制御部130等へそのまま送信する中継送信処理を行う。一方、CPU180aは、主制御部110から送信された認証処理に係る制御コマンドおよび誤り検査値を受信すると、この誤り検査値を用いて主制御部110に対する認証処理を行い、この認証処理によって得られた認証結果の情報(以下、「認証結果データ」という)を後続する演出制御部120や払出制御部130等へ送信し、認証結果データに基づく処理を実行させる。
【0055】
このように、中間制御部180は、主制御部110に対する認証機能と、主制御部110から送信された制御コマンドや各種データを後続する演出制御部120や払出制御部130等へ中継送信する機能と、認証にて得られた認証結果データを後続する演出制御部120や払出制御部130等へ送信する機能とを少なくとも有している。なお、認証処理に関する構成については後述する。
【0056】
遊技情報出力端子板30は、主制御部110において生成された外部情報信号を遊技店のホールコンピュータ等に出力するための基板である。遊技情報出力端子板30は、主制御部110と配線接続され、外部情報を遊技店のホールコンピュータ等と接続をするためのコネクタが設けられている。
【0057】
電源部170は、コンデンサからなるバックアップ電源を備えており、遊技機1に電源電圧を供給するとともに、遊技機1に供給する電源電圧を監視し、電源電圧が所定値以下となったときに、電断検知信号を主制御部110へ出力する。より具体的には、電源電圧が、所定値以下を示すために電断検知信号がローレベルとなり一定時間経過すると、リセット信号がローレベルとなり、メインCPU110aは動作を停止する処理を行う。その後、電源電圧が、所定値以上を示すために電断検知信号がハイレベルとなり一定時間経過すると、リセット信号がハイレベルとなり、メインCPU110aは動作を開始する処理を行う。バックアップ電源はコンデンサに限らず、例えば、電池でもよく、コンデンサと電池とを併用して用いてもよい。
【0058】
演出制御部120は、主に遊技中や待機中等の各演出を制御する。この演出制御部120は、サブCPU120a、サブROM120b、サブRAM120cを備えており、主制御部110に対して、当該主制御部110から演出制御部120への一方向に通信可能に接続されている。サブCPU120aは、主制御部110から送信された制御コマンド、または、上記演出ボタン検出スイッチ35a、タイマからの入力信号に基づいて、サブROM120bに記憶されたプログラムを読み出して演算処理を行うとともに、当該処理に基づいて、対応するデータをランプ制御部140または画像制御部150に送信する。サブRAM120cは、サブCPU120aの演算処理時におけるデータのワークエリアとして機能する。
【0059】
例えば、演出制御部120におけるサブCPU120aは、主制御部110から中間制御部180を介して送信された制御コマンドの1つである特別図柄の変動態様を示す変動パターン指定コマンドを受信すると、受信した変動パターン指定コマンドの内容を解析して、液晶表示装置31、音声出力装置32、演出用駆動装置33、演出用照明装置34に所定の演出を実行させるためのデータを生成し、かかるデータを画像制御部150やランプ制御部140へ送信する。
【0060】
演出制御部120のサブROM120bには、演出制御用のプログラムや各種の遊技の決定に必要なデータ、テーブルが記憶されている。
サブROM120bに記憶されたテーブルとして一例を挙げれば、主制御部110から中間制御部180を介して受信した変動パターン指定コマンドに基づいて演出パターンを決定するための演出パターン決定テーブル、停止表示する演出図柄36の組み合わせを決定するための演出図柄決定テーブルなどがある。
【0061】
演出制御部120のサブRAM120cは、サブCPU120aの演算処理時におけるデータのワークエリアとして機能し、複数の記憶領域を有している。
サブRAM120cが有する記憶領域として一例を挙げれば、遊技状態記憶領域、演出モード記憶領域、演出パターン記憶領域、演出図柄記憶領域などがある。
【0062】
払出制御部130は、遊技球の払い出し制御を行う。この払出制御部130は、図示しない払出CPU、払出ROM、払出RAMから構成されるワンチップマイコンを備えており、主制御部110に対して、双方向に通信可能に接続されている。払出CPUは、遊技球が払い出されたか否かを検知する払出球計数検知スイッチ132、扉開放スイッチ133、タイマからの入力信号に基づいて、払出ROMに記憶されたプログラムを読み出して演算処理を行うとともに、当該処理に基づいて、対応するデータを主制御部110に送信する。
【0063】
また、払出制御部130の出力側には、遊技球の貯留部から所定数の遊技球を払い出すための払出装置の払出モータ131が接続されている。払出CPUは、主制御部110から送信された制御コマンドの1つである払出個数指定コマンドに基づいて、払出ROMから所定のプログラムを読み出して演算処理を行うとともに、払出装置の払出モータ131を制御して所定の遊技球を払い出す。このとき、払出RAMは、払出CPUの演算処理時におけるデータのワークエリアとして機能する。
【0064】
ランプ制御部140は、遊技盤2に設けられた演出用照明装置34を点灯制御したり、光の照射方向を変更するためのモータに対する駆動制御をしたりする。また、演出用駆動装置33を動作させるソレノイドやモータ等の駆動源を通電制御する。このランプ制御部140は、演出制御部120に接続されており、演出制御部120から送信された各種のコマンドに基づいて、上記の各制御を行うこととなる。
【0065】
画像制御部150は、液晶表示装置31の画像表示制御を行うためのホストCPU、ホストCPUのワークエリアとして機能する一時的な記憶領域を有するホストRAM、ホストCPUの制御処理のプログラム等が記憶されたホストROM、画像データが記憶されたCGROM、画像データを描画するフレームバッファを有するVRAM、画像プロセッサとなるVDP(Video Display Processor)と、音の制御を行う音制御回路とを備えている。
【0066】
ホストCPUは、演出制御部120から受信した演出パターン指定コマンドに基づいて、VDPにCGROMに記憶されている画像データを液晶表示装置31に表示させる指示を行う。
VDPは、ホストCPUからの指示に基づいて、CGROMに記憶された画像データをVRAMのフレームバッファに描画する。次に、VRAMにある表示用のフレームバッファに記憶された画像データに基づいて映像信号(RGB信号等)を生成し、生成した映像信号を液晶表示装置31に出力する。
【0067】
音制御回路には、音声データが多数記憶されている音声ROMが備えられており、音制御回路が、演出制御部120から送信されたコマンドに基づいて所定のプログラムを読み出すとともに、音声出力装置32における音声出力制御をする。
【0068】
発射制御部160は、遊技球の発射制御を行う。この発射制御部160は、入力側にタッチセンサ3aおよび発射ボリューム3bが接続されており、出力側に発射用ソレノイド4aおよび玉送りソレノイド4bを接続している。発射制御部160は、タッチセンサ3aからのタッチ信号を入力するとともに、発射ボリューム3bから供給された電圧に基づいて、発射用ソレノイド4aや玉送りソレノイド4bを通電させる制御を行う。
【0069】
タッチセンサ3aは、操作ハンドル3の内部に設けられ、遊技者が操作ハンドル3に触れたことによる静電容量の変化を利用した静電容量型の近接スイッチから構成される。タッチセンサ3aは、遊技者が操作ハンドル3に触れたことを検知すると、発射制御部160(図4参照)に発射用ソレノイド4aの通電を許可するタッチ信号を出力する。発射制御部160は、大前提としてタッチセンサ3aからタッチ信号の入力がなければ、遊技球200を遊技領域6に発射させないように構成されている。
【0070】
発射ボリューム3bは、操作ハンドル3が回動する回動部に直結して設けられ、可変抵抗器から構成される。発射ボリューム3bは、その発射ボリューム3bに印加された定電圧(例えば5V)を可変抵抗器により分圧して、分圧した電圧を発射制御部160に供給する(発射制御部160に供給する電圧を可変させる)。発射制御部160は、発射ボリューム3bにより分圧された電圧に基づいて、発射用ソレノイド4aを通電して、発射用ソレノイド4aに直結された打出部材4cを回転させることで、遊技球200を遊技領域6に発射させる。
【0071】
発射用ソレノイド4aは、ロータリーソレノイドから構成され、発射用ソレノイド4aには打出部材4cが直結されており、発射用ソレノイド4aが回転することで、打出部材4cを回転させる。
【0072】
ここで、発射用ソレノイド4aの回転速度は、発射制御部160に設けられた水晶発振器の出力周期に基づく周波数から、約99.9(回/分)に設定されている。これにより、1分間における発射遊技数は、発射ソレノイドが1回転する毎に1個発射されるため、約99.9(個/分)となる。すなわち、1個の遊技球は約0.6秒毎に発射されることになる。
【0073】
玉送りソレノイド4bは、直進ソレノイドから構成され、受け皿40にある遊技球を、発射用ソレノイド4aに直結された打出部材4cに向けて1個ずつ送り出す。
【0074】
ここで、上記構成の演出制御部120、払出制御部130、ランプ制御部140、画像制御部150、および発射制御部160など、主制御部110からの制御コマンドに基づいて、若しくは当該制御コマンドに基づいて生成されるコマンドに従って遊技機1の制御処理を行う制御部であって、中間制御部180以外の制御部を総称して「周辺部300」という。また、演出制御部120が搭載された演出制御基板や払出制御部130が搭載された払出制御基板など、周辺部300の各制御部が搭載された各制御基板を総称して「周辺基板」という。なお、中間制御部180、ランプ制御部140および画像制御部150は、演出制御部120と同一の基板上に搭載することもできる。また、払出制御部130および発射制御部160は、主制御部110と同一の基板上に搭載することもできる。
【0075】
[遊技機の認証に関する構成]
次に、上記構成の遊技機1が不正防止のために有する認証機能を実現する手段について、図面を参照しながら説明する。
本実施の形態における遊技機1の認証機能は、中間制御部180が主制御部110から送信された制御コマンドの正当性を認証することで、主制御部110の認証を行うことによって実現される。つまり、遊技機1は、主制御部110から送信されてきた制御コマンドが正当なものであれば、主制御部110も正当なものであると判断するのである。そして、中間制御部180で得られた認証結果は周辺部300へ送信され、周辺部300にて受信した認証結果に応じた処理が行われる。なお、本実施の形態では、中間制御部180は、主制御部110と演出制御部120との間に設けられているとともに、中間制御部180で得られた認証結果は、周辺部300のうち演出制御部120へ送信され、演出制御部120が認証結果に応じた処理を行うこととして説明する。
【0076】
具体的には、主制御部110は、制御コマンドを予め複数(例えば、2つ)のグループに分類可能としている。そして、主制御部110は、今回送信する制御コマンドがいずれのグループに属するかを識別し、当該制御コマンドと同一のグループに属する制御コマンドのうちの所定の過去に送信した制御コマンドを複数用いて生成した誤り検査値を生成する。そして、主制御部110は、生成した誤り検査値を今回送信する制御コマンドに付加して中間制御部180に送信する。
【0077】
一方、中間制御部180は、主制御部110と同様に、制御コマンドを予め複数のグループに分類可能としている。そして、中間制御部180は、今回受信した制御コマンドがいずれのグループに属するかを識別し、当該制御コマンドと同一のグループに属する制御コマンドのうちの所定の過去に受信した制御コマンドを複数用いて認証用の誤り検査値を生成する。そして、中間制御部180は、生成した誤り検査値と、今回受信した制御コマンドに付加された誤り検査値とを照合して、これらが一致した場合は、今回送信された制御コマンドの正当性が認証され、主制御部110の認証が成功したと判断する。また、中間制御部180は、認証結果を、演出制御部120へ送信する。演出制御部120は、中間制御部180から送信された認証結果を確認し、認証結果に応じた処理を行う。
【0078】
なお、本実施の形態では、制御コマンドを2つのグループ(グループAとグループB)に分類する例について説明する。
例えば、グループAに、抽選結果を示す制御コマンドを分類し、グループBに、その他の制御コマンドを分類する。具体的には、後述する演出図柄指定コマンドをグループAに、その他の制御コマンドをグループBに分類する。このように分類することにより、グループAに属する制御コマンドは、間欠(不連続)的に送信するコマンドにより誤り検査値を生成するので、誤り検査値および誤り検査の生成方法の解読を困難にすることができる。また、直近の抽選結果に関する制御コマンドについても、検査することができるとともに、抽選結果以外の制御コマンドについては、連続して検査を行うこともできる。さらに、抽選結果に関する制御コマンドについてのみ、誤り検査を行ったり、一定期間中に連続的に送信されるコマンドのみの誤り検査を行ったりすることもできる。
【0079】
また、以下の説明において、グループAに属する制御コマンドを用いて生成された誤り検査値を、説明上、グループAに属する誤り検査値とし、単に、グループAの誤り検査値ともいう。また、グループBに属する制御コマンドを用いて生成された誤り検査値についても同様である。
【0080】
また、本実施の形態では、誤り検査値は、その生成元となった制御コマンドと同一のグループに属しているものとして説明する。具体的には、グループAに属する制御コマンドから生成された誤り検査値はグループAに属しているものとして説明する。
【0081】
図5は、本実施の形態における遊技機1を構成する主制御部110の認証処理に関する構成を示す機能ブロック図である。
図5に示すように、主制御部110は、制御コマンド出力部500と、誤り検査値生成部510と、付加部550と、送信部560と、を備えている。さらに、誤り検査値生成部510は、識別制御部520と、記憶部530と、誤り検査値演算部540と、から構成される。
【0082】
主制御部110を構成する各機能ブロックは、例えば、図4に示すメインCPU110a、メインROM110bおよびメインRAM110c等を適宜組み合わせて構成される。また、制御コマンド出力部500、誤り検査値生成部510、識別制御部520、記憶部530、誤り検査値演算部540および付加部550の機能を実現する具体的な手段は、図4に示すメインCPU110a、メインROM110b、およびメインRAM110cから構成することができる。
なお、本実施の形態においては、制御コマンド出力部500、誤り検査値生成部510、付加部550、送信部560が、それぞれコマンド出力手段、第1検査値生成手段、検査値付加手段、第1送信手段を構成する。また、識別制御部520、記憶部530、誤り検査値演算部540が、それぞれ第1識別手段、第1記憶手段、第1演算手段を構成する。
【0083】
制御コマンド出力部500は、演出制御部120によって行われる遊技処理の内容を指示するために、中間制御部180を介して演出制御部120に今回送信する制御コマンドを生成し、誤り検査値生成部510および付加部550に出力する。
【0084】
誤り検査値生成部510は、制御コマンドを予め2つのグループに分類しており、今回送信される制御コマンドがいずれのグループに属するかを識別する。そして、誤り検査値生成部510は、当該制御コマンドと同一のグループに属する制御コマンドのうち、制御コマンド出力部500から所定の過去に出力された制御コマンドを複数用いて誤り検査値を生成する。さらに、誤り検査値生成部510は、上記生成した誤り検査値を付加部550に送る。
【0085】
具体的には、誤り検査値生成部510を構成する識別制御部520は、制御コマンド出力部500から出力された制御コマンドがいずれのグループに属するかを識別するとともに、この制御コマンドがいずれのグループに属するかを示す情報(以下、グループ情報という)を記憶部530に出力する。
【0086】
記憶部530は、制御コマンド出力部500から今回出力された制御コマンドをグループごとに分類して記憶するとともに、今回の誤り検査値の生成に用いられる制御コマンドを誤り検査値演算部540に出力する。
【0087】
具体的には、記憶部530は、コマンド記憶領域を含み、このコマンド記憶領域は、グループAに属する制御コマンドを記憶するコマンド記憶領域Aと、グループBに属する制御コマンドを記憶するコマンド記憶領域Bとに分かれている。そして、記憶部530は、識別制御部520から出力されたグループ情報に基づいて、制御コマンド出力部500から今回出力された制御コマンドを、対応するグループのコマンド記憶領域に記憶する。また、記憶部530は、上記グループ情報に基づいて、所定のグループの所定の過去の分だけの制御コマンドを、誤り検査値演算部540に送る。
なお、本実施の形態では、記憶部530には、今回出力された制御コマンドを含めて、同一グループの今回出力された制御コマンドの8回前に出力された制御コマンドまでが記憶される。
【0088】
誤り検査値演算部540は、記憶部530に記憶され、識別制御部520に出力されたグループ情報によって特定されるグループの所定の過去に出力された制御コマンドを用いて誤り検査値を生成し、生成した誤り検査値を、付加部550に送る。
なお、本実施の形態においては、誤り検査値演算部540が生成した誤り検査値を、誤り検査値演算部540から直接、付加部550に送るようにしているが、記憶部530に一旦記憶させ、記憶部530を介して付加部550に出力するようにしても良い。
【0089】
また、本実施の形態において、「制御コマンドを用いて誤り検査値を生成する」とは、制御コマンドの具体的な値である制御コマンドデータ(ビットデータ)を用いて、誤り検査値を生成することである。本実施の形態において、特に言及しない限りにおいて「制御コマンド」という言葉には、制御コマンドデータの意味が含まれるものとする。また、所定の過去に出力された制御コマンドとは、今回出力された制御コマンド(今回送信される制御コマンド)の1個前に出力された制御コマンドまでの制御コマンドのことをいう。
【0090】
また、誤り検査値の生成方法は、特に制限されず、抽出したビット情報を様々な組み合わせ方で、誤り検査値を生成しても良いし、抽出したビット情報にさらに演算を加えて、その演算結果を誤り検査値としても良い。このような誤り検査値の生成方法としては、例えば、チェックサム方式、CRC方式、奇数パリティ方式、偶数パリティ方式、群計数チェック方式、垂直パリティ方式、垂平パリティ方式、またはハミング符号方式等の公知の方式を用いることができる。
【0091】
付加部550は、制御コマンド出力部500から出力された今回送信する制御コマンドに、誤り検査値演算部540から出力された誤り検査値を付加して、中間制御部180へと送信する制御コマンド情報を生成する。
【0092】
ここで、制御コマンド情報とは、主制御部110から中間制御部180へと送信される制御信号の総称であり、制御コマンド(制御コマンドデータ)、それに付加された誤り検査値を含んでいる。以下、誤り検査値付き制御コマンドを制御コマンド情報ともいう。
【0093】
図6に、本実施の形態における制御コマンド情報の形式を示す。なお、以下では、グループごとに、制御コマンドが送信された順番に従って、1番目(最初)に送信された制御コマンドを「制御コマンド1」といい、以下、2番目に送信された制御コマンドを「制御コマンド2」,・・・,8番目に送信された制御コマンドを「制御コマンド8」という。したがって、グループごとに図6に示すように、制御コマンドの設定および誤り検査値が生成される。また、本実施の形態では、この制御コマンドの順番は、電源投入によりカウントが開始され、電源がOFFされるまで順次カウントアップされるものとしている。
【0094】
図6に示すように、制御コマンド情報は、基本的に、今回送信する制御コマンドに、所定の過去に出力された制御コマンドから抽出したビット情報Vdを検査値(誤り検査値)として付加した形式になっている。なお、詳細は後述するが、制御コマンドは、1バイトの「MODE」の情報と、1バイトの「DATA」の情報とから構成されている。この図6に示す制御コマンドは、制御コマンドを構成する上記情報のうち、1バイトの「MODE」の情報のみを例にとって説明したものである。なお、以下では、便宜的に、この制御コマンドの「MODE」の情報のみを「制御コマンド」として説明する。
【0095】
ただし、最初に送信される制御コマンド1から所定期間において送信される制御コマンド(図6では、制御コマンド8まで)には誤り検査値として初期値が付加されている。初期値としては特に制限されず、予め決められた誤り検査値のダミーデータや、主制御基板に固有のIDといった遊技機固有のID等を用いることができる。そして、9番目に送信される制御コマンド9には、最初に送信された制御コマンド1から8番目に送信された制御コマンド8(すなわち、所定の過去に出力された制御コマンド)のそれぞれから、その制御コマンドを構成するビット情報の一部を抽出して再構成されたビット情報Vdが誤り検査値Vd(この場合は誤り検査値1)として付加され、制御コマンド情報が生成される。同様に、10番目に送信される制御コマンド10には、2番目に送信された制御コマンド2から9番目に送信された制御コマンド9のそれぞれから、その制御コマンドを構成するビット情報の一部を抽出して再構成されたビット情報Vdが誤り検査値Vd(この場合は誤り検査値2)として付加され、制御コマンド情報が生成される。以下、同様にして制御コマンド情報が生成される。なお、ビット情報Vd(検査値Vd´)についての詳細な説明については後述する。
【0096】
送信部560は、今回送信する制御コマンドに上記誤り検査値を付加して生成された制御コマンド情報、すなわち、付加部550で生成された制御コマンド情報を中間制御部180へと送信する。
【0097】
図7は、本実施の形態における遊技機1を構成する中間制御部180の認証処理に関する構成を示す機能ブロック図である。
図7に示すように、中間制御部180は、受信部600と、誤り検査値生成部610と、誤り検査部650と、付加部660と、送信部670と、を備えている。さらに、誤り検査値生成部610は、識別制御部620と、記憶部630と、誤り検査値演算部640と、から構成される。
【0098】
中間制御部180を構成する各機能ブロックは、例えば、図4に示すサブCPU120a、サブROM120bおよびサブRAM120c等を適宜組み合わせて構成される。また、受信部600、誤り検査値生成部610、識別制御部620、記憶部630、誤り検査値演算部640、誤り検査部650、付加部660および送信部670の機能を実現する具体的な手段は、図4に示すサブCPU120a、サブROM120bおよびサブRAM120cから構成することができる。
なお、本実施の形態においては、受信部600、誤り検査値生成部610、誤り検査部650、付加部660、送信部670が、それぞれ受信手段、第2検査値生成手段、検査手段、認証結果付加手段、第2送信手段を構成する。また、識別制御部620、記憶部630、誤り検査値演算部640が、それぞれ第2識別手段、第2記憶手段、第2演算手段を構成する。
【0099】
受信部600は、受信データ用記憶領域を有し、主制御部110から受信した制御コマンド情報を受信データ用記憶領域に書き込む。また、受信部600は、受信した制御コマンド情報に含まれる制御コマンドと誤り検査値とを分離し、今回受信した制御コマンドを誤り検査値生成部610および付加部660へ、今回受信した制御コマンドに付加された誤り検査値を誤り検査部650へと送信する。
【0100】
誤り検査値生成部610は、制御コマンドを予め2つのグループに分類しており、今回受信した制御コマンドがいずれのグループに属するかを識別する。ここで、グループの分類の仕方は、上記誤り検査値生成部510と同様である。そして、誤り検査値生成部610は、当該制御コマンドと同一のグループに属する制御コマンドのうち、受信部600から所定の過去に入力した制御コマンドを複数用いて誤り検査値を生成する。さらに、誤り検査値生成部610は、上記生成した誤り検査値を誤り検査部650に送る。
【0101】
具体的には、誤り検査値生成部610を構成する識別制御部620は、受信部600から入力した制御コマンドがいずれのグループに属するかを識別するとともに、この制御コマンドのグループ情報を記憶部630に出力する。
【0102】
記憶部630は、受信部600から今回入力した制御コマンドをグループごとに分類して記憶するとともに、今回の誤り検査値の生成に用いられる制御コマンドを誤り検査値演算部640に出力する。
【0103】
具体的には、記憶部630は、コマンド記憶領域を含み、このコマンド記憶領域は、グループAに属する制御コマンドを記憶するコマンド記憶領域Aと、グループBに属する制御コマンドを記憶するコマンド記憶領域Bとに分かれている。そして、記憶部630は、識別制御部620から出力されたグループ情報に基づいて、受信部600から入力した制御コマンドを、対応するグループのコマンド記憶領域に記憶する。また、記憶部630は、上記グループ情報に基づいて、所定のグループの所定の過去の分だけの制御コマンドを、誤り検査値演算部540に送る。
なお、本実施の形態では、記憶部630には、今回送られた制御コマンドを含めて、同一グループの今回送られた制御コマンドの8回前に送られた制御コマンドまでが記憶される。
【0104】
誤り検査値演算部640は、記憶部630に記憶され、識別制御部620に出力されたグループ情報によって特定されるグループの所定の過去に出力された制御コマンドを用いて誤り検査値を生成し、生成した誤り検査値を、誤り検査部650に送る。なお、本実施の形態において、誤り検査値の生成方法は、主制御部110の誤り検査値生成部610が行う誤り検査値生成方法と同一であればよく、上述の各種の方法を適用することができる。
なお、本実施の形態においては、上記誤り検査値生成部510の場合と同様に、誤り検査値演算部640が生成した誤り検査値を、誤り検査値演算部640から直接、誤り検査部650に送るようにしているが、記憶部630に一旦記憶させ、記憶部630を介して誤り検査部650に出力するようにしても良い。
【0105】
誤り検査部650は、受信部600から送られた今回受信した制御コマンドに付加された誤り検査値と、誤り検査値演算部640から送られた今回生成された誤り検査値と、を用いて誤り検査を行う。すなわち、誤り検査部650は、今回受信した誤り検査値が付加された制御コマンド、および今回の誤り検査値の生成元である所定の過去に受信した制御コマンドの正当性を認証する認証処理を行う。また、誤り検査部650は、認証結果を認証結果データとして付加部660に出力する。
【0106】
付加部660は、受信部600が今回受信した制御コマンドに、誤り検査部650から出力された認証結果データを付加し、認証結果データ付き制御コマンド(結果付き制御コマンド情報)を生成する。そして、付加部660は、生成した認証結果データ付き制御コマンドを送信部670に出力する。
【0107】
送信部670は、付加部660から出力された認証結果データ付き制御コマンドを演出制御部120へと送信する。
【0108】
[制御コマンドの説明]
以下、本発明の実施の形態における遊技機1の主制御部110から中間制御部180を介して演出制御部120に対して送信される制御コマンドの種別について説明する。
図8は、本実施の形態における遊技機1を構成する主制御部110から中間制御部180を介して演出制御部120へ送信される制御コマンドの種別を示す図である。なお、図8に示された制御コマンドは一例であり、本発明における制御コマンドはこれに限定されるものではない。
【0109】
主制御部110から中間制御部180を介して演出制御部120へ送信される制御コマンドは、1コマンドが2バイトのデータで構成されており、制御コマンドの分類を識別するための1バイトの「MODE」の情報と、各制御コマンドの詳細な制御内容を示す1バイトの「DATA」の情報とから構成されている。
【0110】
「演出図柄指定コマンド」は、停止表示される特別図柄の種別を示すものであり、「MODE」が「E0H」で設定され、特別図柄の種別に合わせて「DATA」の情報が設定されている。なお、特別図柄の種別が結果的に大当たりの種別や遊技状態を決定するものであるから、演出図柄指定コマンドは、大当たりの種別や、遊技状態を示すものともいえる。
この演出図柄指定コマンドは、各種の特別図柄が決定され、特別図柄の変動表示が開始されるときに、決定された特別図柄に対応する演出図柄指定コマンドが演出制御部120に送信される。具体的には、大当たりの抽選結果を判定し特別図柄各種の特別図柄が決定され特別図柄の変動表示が開始されるときに、決定された特別図柄に対応する演出図柄指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。その後、送信データ用記憶領域にセットされている演出図柄指定コマンドは、後述する制御コマンド送信処理により、誤り検査値を付加されて中間制御部180を介して演出制御部120へ送信されることになる。以下、他の制御コマンドも同様にして中間制御部180を介して演出制御部120へ送信される。
なお、演出図柄指定コマンド等と関連する大当たりの抽選に関する処理については後述する。
【0111】
ここで、演出図柄指定コマンドのうち、「DATA」が「00H」で設定される「ハズレ演出図柄指定コマンド」は、抽選結果がハズレの場合に、ハズレの結果を停止表示させるための制御コマンドである。すなわち、ハズレ演出図柄指定コマンド、抽選結果がハズレの場合に、主制御部110から中間制御部180を介して演出制御部120に必ず送信される制御コマンドである。以下、ハズレ演出図柄指定コマンドを、ハズレの際の処理を実行させるコマンドとして、単に、「ハズレコマンド」ともいう。
【0112】
「第1特別図柄記憶指定コマンド」は、第1特別図柄保留数(U1)記憶領域に記憶されている保留記憶数を示すものであり、「MODE」が「E1H」で設定され、保留記憶数に合わせて「DATA」の情報が設定されている。
この第1特別図柄記憶指定コマンドは、第1特別図柄保留数(U1)記憶領域に記憶されている保留記憶数が切り替わるときに、保留記憶数に対応する第1特別図柄記憶指定コマンドが中間制御部180を介して演出制御部120に送信される。具体的には、第1始動口14への入球や大当たりの抽選結果の判定に際し第1特別図柄保留数(U1)記憶領域に記憶されている値が増減したときに、増減後の保留記憶数に対応する第1特別図柄記憶指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
【0113】
「第2特別図柄記憶指定コマンド」は、第2特別図柄保留数(U2)記憶領域に記憶されている保留記憶数を示すものであり、「MODE」が「E2H」で設定され、保留記憶数に合わせて「DATA」の情報が設定されている。
この第2特別図柄記憶指定コマンドは、第2特別図柄保留数(U2)記憶領域に記憶されている保留記憶数が切り替わるときに、保留記憶数に対応する第2特別図柄記憶指定コマンドが中間制御部180を介して演出制御部120に送信される。具体的には、第2始動口15への入球や大当たりの抽選結果の判定に際し第2特別図柄保留数(U2)記憶領域に記憶されている値が増減したときに、増減後の保留記憶数に対応する第2特別図柄記憶指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、本実施の形態では、「第1特別図柄記憶指定コマンド」と「第2特別図柄記憶指定コマンド」とをまとめて「特別図柄記憶指定コマンド」という。
【0114】
「図柄確定コマンド」は、特別図柄が停止表示されていることを示すものであり、「MODE」が「E3H」で設定され、「DATA」が「00H」に設定されている。
この図柄確定コマンドは、特別図柄が停止表示されているときに中間制御部180を介して演出制御部120に送信される。具体的には、大当たりの抽選結果を判定し特別図柄の変動時間が経過した後に、特別図柄を第1特別図柄表示装置20または第2特別図柄表示装置21に停止表示させるときに、図柄確定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
【0115】
「電源投入時指定コマンド」は、遊技機1の電源が投入されたことを示すものであり、「MODE」が「E4H」で設定され、「DATA」が「00H」に設定されている。
この電源投入時指定コマンドは、遊技機1の電源が投入されたときに中間制御部180を介して演出制御部120に送信される。遊技機1の電源が投入され主制御部110の初期化処理が行われる際に、電源遮断時(以下、「電断時」という)に生成したメインRAM110cのバックアップ情報が有効でない場合は、メインRAM110cの作業領域がクリアされ、新たに作業領域の設定が行われる。その後、電源投入時指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、電源投入時指定コマンド等と関連する初期化処理については後述する。
【0116】
「RAMクリア指定コマンド」は、メインRAM110cに記憶された情報がクリアされたことを示すものであり、「MODE」が「E4H」で設定され、「DATA」が「01H」に設定されている。
遊技機1の裏側には図示しないRAMクリアボタンが設けられており、RAMクリアボタンを押下しながら遊技機1の電源を投入すると、主制御部110にシステムリセットが発生し初期化処理が行われる。そして、メインRAM110cの作業領域がクリアされ新たに作業領域の設定が行われ電源投入時指定コマンドを送信した後に、RAMクリア指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
【0117】
「電源復旧指定コマンド」は、遊技機1の電源が投入されて、正常に復旧したことを示すものであり、「MODE」が「E4H」で設定され、電断時の遊技状態別に合わせて「DATA」の情報が設定されている。
この電源復旧指定コマンドは、遊技機1の電源が投入されて、正常に復旧したときに中間制御部180を介して演出制御部120に送信される。具体的には、遊技機1の電源が投入され初期化処理が行われる際に、電断時に生成したメインRAM110cのバックアップ情報が有効である場合は、バックアップ情報が示す遊技状態に応じた電源復旧指定コマンドを生成し、生成した電源復旧指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
【0118】
なお、電源投入時に、電源投入時指定コマンド、RAMクリア指定コマンド、電源復旧指定コマンドのいずれか少なくとも1つが主制御部110から中間制御部180を介して演出制御部120へ送信される。すなわち、「MODE」が「E4H」で設定される上記の制御コマンド群は、電源投入時の処理を実行させるコマンドである。以下、「MODE」が「E4H」で設定される上記の制御コマンド群を、単に、「電源投入コマンド」ともいう。
【0119】
「デモ指定コマンド」は、第1特別図柄表示装置20または第2特別図柄表示装置21が作動していないことを示すものであり、「MODE」が「E5H」で設定され、「DATA」が「00H」に設定されている。
このデモ指定コマンドは、第1特別図柄表示装置20または第2特別図柄表示装置21の特別図柄の保留記憶がなく、遊技者による操作がない非遊技状態が所定の時間経過したときに、中間制御部180を介して演出制御部120に送信される。具体的には、大当たりの抽選、特別電動役物、遊技状態の制御を行うに際し、第1特別図柄保留数(U1)記憶領域または第2特別図柄保留数(U2)記憶領域のいずれの記憶領域にも1以上のデータがセットされていない状態が所定の時間継続したときに、デモ指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
【0120】
なお、デモ指定コマンドは、第1特別図柄表示装置20または第2特別図柄表示装置21の特別図柄の保留記憶がないとき直ちに送信するようにしてもよい。この場合、演出制御部120は、デモ指定コマンドを受信した後、他の制御コマンドを所定時間受信しなかった場合、すなわち非遊技状態が所定時間経過した場合にデモ演出を実行する。
【0121】
「第1特別図柄用変動パターン指定コマンド」は、第1特別図柄表示装置20における特別図柄の変動時間(変動態様)を示すものであり、「MODE」が「E6H」で設定され、各種の変動パターンに合わせて「DATA」の情報が設定されている。
この第1特別図柄用変動パターン指定コマンドは、第1特別図柄表示装置20の特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第1特別図柄用変動パターン指定コマンドが中間制御部180を介して演出制御部120に送信される。具体的には、大当たりの抽選結果を判定し特別図柄の変動パターンが決定され特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第1特別図柄用変動パターン指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
【0122】
「第2特別図柄用変動パターン指定コマンド」は、第2特別図柄表示装置21における特別図柄の変動時間(変動態様)を示すものであり、「MODE」が「E7H」で設定され、各種の変動パターンに合わせて「DATA」の情報が設定されている。
この第2特別図柄用変動パターン指定コマンドは、第2特別図柄表示装置21の特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第2特別図柄用変動パターン指定コマンドが中間制御部180を介して演出制御部120に送信される。具体的には、大当たりの抽選結果を判定し特別図柄の変動パターンが決定され特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第2特別図柄用変動パターン指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、本実施の形態では、「第1特別図柄用変動パターン指定コマンド」と「第2特別図柄用変動パターン指定コマンド」とをまとめて、「変動パターン指定コマンド」という。
【0123】
ここで、変動パターン指定コマンドのうち、「DATA」が「01H」、「02H」、「03H」、「04H」、「05H」で設定される制御コマンド群は、リーチ演出を実行させる制御コマンドである。以下、「MODE」が「E6H」で設定され、かつ「DATA」が「01H」〜「05H」で設定される制御コマンド群を、単に、「リーチコマンド」ともいう。
【0124】
「大入賞口開放指定コマンド」は、各種大当たりの種別に合わせた大当たりのラウンド数を示すものであり、「MODE」が「EAH」で設定され、大当たりのラウンド数に合わせて「DATA」の情報が設定されている。
この大入賞口開放指定コマンドは、大当たりラウンドが開始されるときに、開始されたラウンド数に対応する大入賞口開放指定コマンドが中間制御部180を介して演出制御部120に送信される。具体的には、大当たり遊技処理において第1大入賞口開閉扉16b(または第2大入賞口開閉扉17b)を開放させるときに、開放させるときのラウンド数に対応する大入賞口開放指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、「MODE」が「EAH」で設定されるコマンド群は、大当たり中の各ラウンドに対応する処理を実行させるコマンドである。以下、「MODE」が「EAH」で設定されるコマンド群を、単に、「大当たりコマンド」ともいう。
【0125】
「オープニング指定コマンド」は、各種の大当たりが開始することを示すものであり、「MODE」が「EBH」で設定され、大当たりの種別に合わせて「DATA」の情報が設定されている。
このオープニング指定コマンドは、各種の大当たりが開始するときに、大当たりの種別に対応するオープニング指定コマンドが中間制御部180を介して演出制御部120に送信される。具体的には、大当たり遊技処理の開始のときに、大当たりの種別に対応するオープニング指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、「MODE」が「EBH」で設定されるコマンド群は、大当たり状態の処理を開始させるコマンドである。以下、「MODE」が「EBH」で設定されるコマンド群を、「大当たり開始コマンド」ともいう。
【0126】
「エンディング指定コマンド」は、各種の大当たりが終了したことを示すものであり、「MODE」が「ECH」で設定され、大当たりの種別に合わせて「DATA」の情報が設定されている。
このエンディング指定コマンドは、各種の大当たりが終了するときに、大当たりの種別に対応するエンディング指定コマンドが中間制御部180を介して演出制御部120に送信される。具体的には、大当たり遊技終了処理の開始のときに、大当たりの種別に対応するエンディング指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、「MODE」が「ECH」で設定されるコマンド群は、大当たり状態の処理を終了させるコマンドである。以下、「MODE」が「ECH」で設定されるコマンド群を、「大当たり終了コマンド」ともいう。
【0127】
「遊技状態指定コマンド」は、遊技状態の内容を示すものであり、「MODE」が「EDH」で設定され、遊技状態の内容に合わせて「DATA」の情報が設定されている。
この遊技状態指定コマンドは、特別図柄の変動開始時および変動終了時に遊技状態指定コマンドが中間制御部180を介して演出制御部120に送信される。具体的には、特別図柄の変動開始時および変動終了時などによって、遊技状態記憶領域や高確率遊技回数カウンタなどの現在の遊技状態を示すデータを記憶した各種記憶領域の値が変化したときに、現在の遊技状態に対応する遊技状態指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
【0128】
ここで、演出図柄指定コマンド、図柄確定コマンド、および変動パターン指定コマンドは、特別図柄の変動表示が開始されるときか、または停止されるときに送信される制御コマンドであり、特別図柄の変動の際にセットで送信される制御コマンドである。以下、これらの制御コマンドをまとめて「特別図柄変動関連コマンド」ともいう。
【0129】
また、大当たり開始コマンド、大当たりコマンド、および大当たり終了コマンドは、大当たり遊技処理の際にセットで送信される制御コマンドである。以下、これらの制御コマンドをまとめて「大当たり関連コマンド」ともいう。
【0130】
なお、グループ分けについては、所定のグループ分けテーブルを用意し、このテーブルで、Aグループに入る制御コマンドとBグループに入る制御コマンドとを一覧形式で設定するようにしても良いが、グループ識別子を設け、上記制御コマンドの個々に付与して、このグループ識別子によりグループ分けを行うようにしても良い。また、上記「MODE」別にグループ識別子を設けるようにしても良い。
【0131】
[主制御部の制御処理]
以下、本発明の実施形態に係る遊技機1の主制御部110の制御処理について説明する。まず、主制御部110のメイン処理について説明する。
図9は、本実施形態に係る主制御部110によるメイン処理を示すフローチャートである。
【0132】
まず、ステップS10において、メインCPU110aは、初期化処理を行う。この処理において、メインCPU110aは、電源投入に応じて、メインROM110bから起動プログラムを読み込むとともに、メインRAM110cに記憶されるフラグなどを初期化する処理を行う。
ステップS20において、メインCPU110aは、特別図柄の変動態様(変動時間)を決定するためのリーチ判定用乱数値および特図変動用乱数値を更新する演出用乱数値更新処理を行う。
ステップS30において、メインCPU110aは、特別図柄判定用初期乱数値、大当たり図柄用初期乱数値、小当たり図柄用初期値乱数値、普通図柄判定用初期乱数値を更新する初期乱数値更新処理を行う。その後、所定の割込処理が行われるまで、ステップS20とステップS30との処理を繰り返し行う。
【0133】
次に、主制御部110の割込処理について説明する。
図10は、本実施形態に係る主制御部110による割込処理を示すフローチャートである。
メインCPU110aは、主制御部110に設けられたクロックパルス発生回路(図示せず)から出力されるクロック信号に基づいて、所定の周期(例えば、4ミリ秒)ごとに、主制御部110のタイマ割込処理を実行する。
【0134】
まず、ステップS100において、メインCPU110aは、メインCPU110aのレジスタに記憶されている情報をスタック領域に退避させる。
【0135】
ステップS110において、メインCPU110aは、特別図柄時間カウンタの更新処理、特別電動役物の開放時間等などの特別遊技タイマカウンタの更新処理、普通図柄時間カウンタの更新処理、普電開放時間カウンタの更新処理等の各種タイマカウンタを更新する時間制御処理を行う。具体的には、特別図柄時間カウンタ、特別遊技タイマカウンタ、普通図柄時間カウンタ、普電開放時間カウンタから1を減算する処理を行う。
【0136】
ステップS120において、メインCPU110aは、特別図柄判定用乱数値、大当たり図柄用乱数値、小当たり図柄用乱数値、普通図柄判定用乱数値の乱数更新処理を行う。
具体的には、それぞれの乱数値および乱数カウンタに1を加算して更新する。なお、加算した乱数カウンタが乱数範囲の最大値を超えた場合(乱数カウンタが1周した場合)には、乱数カウンタを0に戻し、その時の初期乱数値からそれぞれの乱数値を新たに更新する。
【0137】
ステップS130において、メインCPU110aは、ステップS30と同様に、特別図柄判定用初期乱数値、大当たり図柄用初期乱数値、小当たり図柄用初期値乱数値、普通図柄判定用初期乱数値を更新する初期乱数値更新処理を行う。
【0138】
ステップS200において、メインCPU110aは、入力制御処理を行う。この処理において、メインCPU110aは、一般入賞口検出スイッチ12a、第1大入賞口検出スイッチ16a、第2大入賞口検出スイッチ17a、第1始動口検出スイッチ14a、第2始動口検出スイッチ15a、ゲート検出スイッチ13aの各スイッチに入力があったか否か判定する入力処理を行う。
【0139】
具体的には、一般入賞口検出スイッチ12a、第1大入賞口検出スイッチ16a、第2大入賞口検出スイッチ17a、第1始動口検出スイッチ14a、第2始動口検出スイッチ15aからの各種検出信号を入力した場合には、ぞれぞれの入賞口毎に設けられた賞球のために用いる賞球カウンタに所定のデータを加算して更新する。
【0140】
さらに、第1始動口検出スイッチ14aから検出信号を入力した場合には、第1特別図柄保留数(U1)記憶領域にセットされているデータが4未満であれば、第1特別図柄保留数(U1)記憶領域に1を加算し、特別図柄判定用乱数値、大当たり図柄用乱数値、小当たり図柄用乱数値、リーチ判定用乱数値および特図変動用乱数値を取得して、取得した各種乱数値を第1特別図柄乱数値記憶領域にある所定の記憶部(第0記憶部〜第4記憶部)に記憶する。
【0141】
同様に、第2始動口検出スイッチ15aから検出信号を入力した場合には、第2特別図柄保留数(U2)記憶領域にセットされているデータが4未満であれば、第2特別図柄保留数(U2)記憶領域に1を加算し、特別図柄判定用乱数値、大当たり図柄用乱数値、小当たり図柄用乱数値、リーチ判定用乱数値および特図変動用乱数値を取得して、取得した各種乱数値を第2特別図柄乱数値記憶領域にある所定の記憶部(第0記憶部〜第4記憶部)に記憶する。
【0142】
また、ゲート検出スイッチ13aから検出信号を入力した場合には、普通図柄保留数(G)記憶領域にセットされているデータが4未満であれば、普通図柄保留数(G)記憶領域に1を加算し、普通図柄判定用乱数値を取得して、取得した普通図柄判定用乱数値を普通図柄保留記憶領域にある所定の記憶部(第0記憶部〜第4記憶部)に記憶する。
【0143】
さらに、第1大入賞口検出スイッチ16aまたは第2大入賞口検出スイッチ17aからの検出信号を入力した場合には、第1大入賞口16または第2大入賞口17に入賞した遊技球を計数するための大入賞口入球数(C)記憶領域に1を加算して更新する。
【0144】
ステップS300において、メインCPU110aは、上記ステップS200での入力制御処理に基づいて、大当たりの抽選、特別電動役物、遊技状態の制御を行うための特別図柄・特別電動役物制御処理(以下、「特図特電制御処理」という)を行う。特図特電制御処理の詳細については、図11を用いて後述する。
【0145】
ステップS400において、メインCPU110aは、普通図柄の抽選、普通電動役物の制御を行うための普通図柄・普通電動役物制御処理(以下、「普図普電制御処理」という)を行う。
具体的には、まず普通図柄保留数(G)記憶領域に1以上のデータがセットされているか否かを判定し、普通図柄保留数(G)記憶領域に1以上のデータがセットされていなければ、今回の普図普電制御処理を終了する。
【0146】
普通図柄保留数(G)記憶領域に1以上のデータがセットされていれば、普通図柄保留数(G)記憶領域に記憶されている値から1を減算した後、普通図柄保留記憶領域にある第1記憶部〜第4記憶部に記憶された普通図柄判定用乱数値を1つ前の記憶部にシフトさせる。このとき、既に第0記憶部に書き込まれていた普通図柄判定用乱数値は上書きされて消去されることとなる。
そして、当たり判定テーブルを参照し、普通図柄保留記憶領域の第0記憶部に記憶された普通図柄判定用乱数値が「当たり」に対応する乱数値であるかどうかの判定をする処理を行う。その後、普通図柄表示装置22において普通図柄の変動表示を行って、普通図柄の変動時間が経過すると普通図柄の抽選の結果に対応する普通図柄の停止表示を行う。そして、参照した普通図柄判定用乱数値が「当たり」のものであれば、始動口開閉ソレノイド15cを駆動させ、第2始動口15を所定の開放時間、第2の態様に制御する。
【0147】
ステップS500において、メインCPU110aは、払出制御処理を行う。この払出制御処理において、メインCPU110aは、ぞれぞれの賞球カウンタを参照し、各種入賞口に対応する払出個数指定コマンドを生成して、生成した払出個数指定コマンドを払出制御部130に送信する。
【0148】
ステップS600において、メインCPU110aは、外部情報データ、始動口開閉ソレノイドデータ、第1大入賞口開閉ソレノイドデータ、第2大入賞口開閉ソレノイドデータ、特別図柄表示装置データ、普通図柄表示装置データ、記憶数指定コマンドのデータ作成処理を行う。
【0149】
ステップS700において、メインCPU110aは、出力制御処理を行う。この処理において、ステップS600で作成した外部情報データ、始動口開閉ソレノイドデータ、第1大入賞口開閉ソレノイドデータ、第2大入賞口開閉ソレノイドデータの信号を出力させるポート出力処理を行う。
また、第1特別図柄表示装置20、第2特別図柄表示装置21および普通図柄表示装置22の各LEDを点灯させるために、上記S600で作成した特別図柄表示装置データと普通図柄表示装置データとを出力する表示装置出力処理を行う。
【0150】
ステップS710において、メインCPU110aは、制御コマンド送信処理を行う。
具体的には、メインCPU110aは、メインRAM110cの送信データ用記憶領域にセットされている制御コマンドに誤り検査値(または初期値)を付加して制御コマンド情報を生成し、生成した制御コマンド情報を中間制御部180に送信する。この制御コマンド送信処理の詳細については図13を用いて後述する。
【0151】
ステップS800において、メインCPU110aは、ステップS100で退避した情報をメインCPU110aのレジスタに復帰させる。
【0152】
次に、主制御部110の特図特電制御処理を説明する。
図11は、本実施形態に係る主制御部110による特図特電制御処理を示すフローチャートである。
【0153】
ステップS301において、メインCPU110aは、特図特電処理データの値を読み込む。この「特図特電処理データ」は、特図特電制御処理の各サブルーチンが記憶された記憶領域のアドレスにそれぞれ割り当てられた値であり、特図特電処理データを参照することで、どのサブルーチンを処理するかを識別することができる。そして、特図特電処理データは、後述するように特図特電制御処理の各サブルーチンの中で必要に応じてセットされていき、その遊技において必要なサブルーチンが適宜処理されていくことになる。
【0154】
ステップS302において、メインCPU110aは、読み込んだ特図特電処理データから分岐先アドレスを参照し、特図特電処理データ=0であれば特別図柄記憶判定処理(ステップS310)に処理を移し、特図特電処理データ=1であれば特別図柄変動処理(ステップS320)に処理を移し、特図特電処理データ=2であれば特別図柄停止処理(ステップS330)に処理を移し、特図特電処理データ=3であれば大当たり遊技処理(ステップS340)に処理を移し、特図特電処理データ=4であれば大当たり遊技終了処理(ステップS350)に処理を移し、特図特電処理データ=5であれば小当たり遊技処理(ステップS360)に処理を移す。
【0155】
ステップS310の特別図柄記憶判定処理においては、メインCPU110aは、大当たり判定処理、停止表示する特別図柄の決定をする特別図柄決定処理、特別図柄の変動時間を決定する変動時間決定処理等を行う。ここで、図12を用いて、特別図柄記憶判定処理の具体的な内容を説明する。
【0156】
図12は、本実施形態に係る主制御部110による特別図柄記憶判定処理におけるフローチャートである。
【0157】
ステップS311において、メインCPU110aは、第1特別図柄保留数(U1)記憶領域または第2特別図柄保留数(U2)記憶領域に1以上のデータがセットされているか否かを判定する。
そして、第1特別図柄保留数(U1)記憶領域または第2特別図柄保留数(U2)記憶領域のいずれの記憶領域にも1以上のデータがセットされていなければ、特図特電処理データ=0を保持したまま、今回の特別図柄変動処理を終了する。
一方、第1特別図柄保留数(U1)記憶領域または第2特別図柄保留数(U2)記憶領域に1以上のデータがセットされていれば、ステップS312に処理を移す。
【0158】
ステップS312において、メインCPU110aは、大当たり判定処理を行う。
具体的には、第2特別図柄保留数(U2)記憶領域に1以上のデータがセットされている場合には、第2特別図柄保留数(U2)記憶領域に記憶されている値から1を減算した後、第2特別図柄乱数値記憶領域にある第1記憶部〜第4記憶部に記憶された各種乱数値を1つ前の記憶部にシフトさせる。このとき、既に第0記憶部に書き込まれていた各種乱数値は上書きされて消去されることとなる。そして、大当たり判定テーブルを参照して、第2特別図柄乱数値記憶領域の第0記憶部に記憶された特別図柄判定用乱数値が「大当たり」に対応する乱数値であるか、「小当たり」に対応する乱数値であるかの判定を行う。
【0159】
また、第2特別図柄保留数(U2)記憶領域に1以上のデータがセットされておらず、第1特別図柄保留数(U1)記憶領域に1以上のデータがセットされている場合には、第1特別図柄保留数(U1)記憶領域に記憶されている値から1を減算した後、第1特別図柄乱数値記憶領域にある第1記憶部〜第4記憶部に記憶された各種乱数値を1つ前の記憶部にシフトさせる。このときにも、既に第0記憶部に書き込まれていた各種乱数値は上書きされて消去されることとなる。そして、大当たり判定テーブルを参照して、第1特別図柄乱数値記憶領域の第0記憶部に記憶された特別図柄判定用乱数値が「大当たり」に対応する乱数値であるか、「小当たり」に対応する乱数値であるかの判定を行う。
【0160】
本実施形態では、第1特別図柄乱数値記憶領域よりも第2特別図柄乱数値記憶領域に記憶された乱数値が優先してシフト(消化)されることになる。しかしながら、始動口に入賞した順序で、第1特別図柄記憶領域または第2特別図柄記憶領域をシフトさせてもよいし、第1特別図柄記憶領域を第2特別図柄記憶領域よりも優先させてシフトさせてもよい。
【0161】
ステップS313において、メインCPU110aは、停止表示する特別図柄の種類を決定するための特別図柄決定処理を行う。
この特別図柄決定処理では、上記大当たり判定処理(ステップS312)において「大当たり」と判定された場合には、図柄決定テーブルを参照して、第1特別図柄乱数値記憶領域の第0記憶部に記憶された大当たり図柄用乱数値に基づいて大当たり図柄(特別図柄1〜特別図柄6)を決定する。また、上記大当たり判定処理(ステップS312)において「小当たり」と判定された場合には、図柄決定テーブルを参照して、第1特別図柄乱数値記憶領域の第0記憶部に記憶された小当たり図柄用乱数値に基づいて小当たり図柄(特別図柄A、特別図柄B)を決定する。また、上記大当たり判定処理(ステップS312)において「ハズレ」と判定された場合には、図柄決定テーブルを参照して、ハズレ図柄(特別図柄0)を決定する。
そして、決定した特別図柄に対応する停止図柄データを停止図柄データ記憶領域に記憶する。
【0162】
ステップS314において、メインCPU110aは、特別図柄の変動時間決定処理を行う。
具体的には、変動パターン決定テーブルを参照して、第1特別図柄乱数値記憶領域の第0記憶部に記憶されたリーチ判定用乱数値および特図変動用乱数値に基づいて、特別図柄の変動パターンを決定する。その後、決定した特別図柄の変動パターンに対応する特別図柄の変動時間を決定する。そして、決定した特別図柄の変動時間に対応するカウンタを特別図柄時間カウンタにセットする処理を行う。
【0163】
ステップS315において、メインCPU110aは、第1特別図柄表示装置20または第2特別図柄表示装置21に特別図柄の変動表示(LEDの点滅)を行わせるための変動表示データを所定の処理領域にセットする。これにより、所定の処理領域に変動表示データがセットされていると、上記ステップS600でLEDの点灯または消灯のデータが適宜作成され、作成されたデータがステップS700において出力されることで、第1特別図柄表示装置20または第2特別図柄表示装置21の変動表示が行われる。
さらに、メインCPU110aは、特別図柄の変動表示が開始されるときに、上記ステップS314で決定された特別図柄の変動パターンに対応する特別図柄の変動パターン指定コマンド(第1特別図柄用変動パターン指定コマンドまたは第2特別図柄用変動パターン指定コマンド)をメインRAM110cの送信データ用記憶領域にセットする。
【0164】
ステップS316において、メインCPU110aは、特図特電処理データ=0から特図特電処理データ=1にセットして、特別図柄変動処理のサブルーチンに移す準備を行い、特別図柄記憶判定処理を終了する。
【0165】
再び、図11に示す特図特電制御処理について説明を戻すことにする。
ステップS320の特別図柄変動処理においては、メインCPU110aは、特別図柄の変動時間が経過したか否かを判定する処理を行う。
具体的には、ステップS314で決定された特別図柄の変動時間が経過したか(特別図柄時間カウンタ=0)否かを判定し、特別図柄の変動時間が経過していないと判定した場合には、特図特電処理データ=1を保持したまま、今回の特別図柄変動処理を終了する。なお、上記ステップS314でセットされた特別図柄の変動時間のカウンタは、上記ステップS110において減算処理されていく。
【0166】
特別図柄の変動時間が経過したと判定すれば、上記ステップS313で決定された特別図柄を第1特別図柄表示装置20または第2特別図柄表示装置21に停止表示させる。これにより、第1特別図柄表示装置20または第2特別図柄表示装置21に特別図柄が停止表示され、遊技者に大当たりの判定結果が報知されることとなる。
また、高確率遊技回数(X)>0のときには高確率遊技回数(X)カウンタから1を減算して更新し、高確率遊技回数(X)=0となれば、高確率遊技フラグをクリアする。
最後に、特図特電処理データ=1から特図特電処理データ=2にセットして、特別図柄停止処理のサブルーチンに移す準備を行い、特別図柄変動処理を終了する。
【0167】
ステップS330の特別図柄停止処理においては、メインCPU110aは、停止表示された特別図柄が「大当たり図柄」であるか、「小当たり図柄」であるか、「ハズレ図柄」であるかを判定する処理を行う。
そして、大当たり図柄と判定された場合には、遊技状態記憶領域に記憶されているデータを参照し、現在の遊技状態を示すデータを遊技状態バッファにセットする。その後に、遊技状態記憶領域(高確率遊技フラグ記憶領域等)に記憶されているデータ(高確率遊技フラグ)、高確率遊技回数(X)カウンタをクリアする。さらに、特図特電処理データ=2から特図特電処理データ=3にセットして、大当たり遊技処理のサブルーチンに移す準備を行い、特別図柄停止処理を終了する。
【0168】
また、小当たり図柄と判定された場合には、遊技状態記憶領域に記憶されているデータはクリアせずに、特図特電処理データ=2から特図特電処理データ=5にセットして、小当たり遊技処理のサブルーチンに移す準備を行い、特別図柄停止処理を終了する。
一方、ハズレ図柄と判定された場合には、特図特電処理データ=2から特図特電処理データ=0にセットして、特別図柄記憶判定処理のサブルーチンに移す準備を行い、特別図柄停止処理を終了する。
【0169】
ステップS340の大当たり遊技処理においては、メインCPU110aは、上記長当たりまたは短当たりのいずれの大当たりを実行させるかを決定し、決定した大当たりを制御する処理を行う。
具体的には、まず、特別電動役物作動態様決定テーブルを参照し、上記ステップS313で決定された大当たり図柄の種類(停止図柄データ)に基づいて、大当たりの開放態様を決定する。
【0170】
次に、決定した大当たりの開放態様を実行させるために、大入賞口開放態様テーブルを参照し、大当たりの種類に応じた開放時間を特別遊技タイマカウンタにセットするとともに、第1大入賞口開閉ソレノイド16c(または第2大入賞口開閉ソレノイド17c)の駆動データを出力して第1大入賞口開閉扉16b(または第2大入賞口開閉扉17b)を開放させる。このとき、ラウンド遊技回数(R)記憶領域に1を加算する。
この開放中に規定個数の遊技球が入球するか、大入賞口の開放時間が経過すると(大入賞口入球数(C)=9または特別遊技タイマカウンタ=0である)と、第1大入賞口開閉ソレノイド16c(または第2大入賞口開閉ソレノイド17c)の駆動データの出力を停止して第1大入賞口開閉扉16b(または第2大入賞口開閉扉17b)を閉鎖させる。これにより、1回のラウンド遊技が終了する。このラウンド遊技の制御を繰り返し15回行う。
【0171】
15回のラウンド遊技が終了すると(ラウンド遊技回数(R)=15)、ラウンド遊技回数(R)記憶領域および大入賞口入球数(C)記憶領域に記憶されているデータをクリアするとともに、特図特電処理データ=3から特図特電処理データ=4にセットして、大当たり遊技終了処理のサブルーチンに移す準備を行い、大当たり遊技処理を終了する。
【0172】
ステップS350の大当たり遊技終了処理においては、メインCPU110aは、高確率遊技状態または低確率遊技状態のいずれかの確率遊技状態を決定する処理を行う。
具体的には、大当たり遊技終了時設定データテーブルを参照し、遊技状態バッファに記憶されているデータと上記ステップS313で決定された大当たり図柄の種類(停止図柄データ)とに基づいて、高確率遊技フラグの設定、高確率遊技回数(X)の設定を行う。例えば、特別図柄1であれば、高確率遊技フラグ記憶領域に高確率遊技フラグをセットし、高確率遊技回数(X)カウンタに10000回をセットする。
その後、特図特電処理データ=4から特図特電処理データ=0にセットして、特別図柄記憶判定処理のサブルーチンに移す準備を行い、大当たり遊技終了処理を終了する。
【0173】
ステップS360の小当たり遊技処理においては、メインCPU110aは、まず、特別電動役物作動態様決定テーブルを参照し、上記ステップS313で決定された小当たり図柄の種類(停止図柄データ)に基づいて、小当たりの開放態様を決定する。
次に、決定した小当たりの開放態様を実行させるために、大入賞口開放態様テーブルを参照し、小当たりの開放時間を特別遊技タイマカウンタにセットするとともに、第2大入賞口開閉ソレノイド17cの駆動データを出力して第2大入賞口開閉扉17bを開放させる。このとき、開放回数(K)記憶領域に1を加算する。
小当たりの開放時間が経過する(特別遊技タイマカウンタ=0)と、第2大入賞口開閉ソレノイド17cの駆動データの出力を停止して第2大入賞口開閉扉17bを閉鎖させる。この第2大入賞口開閉扉17bの開閉制御を繰り返し15回行う。
【0174】
そして、第2大入賞口開閉扉17bの開閉制御が15回行われるか、第2大入賞口17に規定個数の遊技球が入球する(開放回数(K)=15または大入賞口入球数(C)=9である)と、小当たり遊技を終了させるため、第2大入賞口開閉ソレノイド17cの駆動データの出力を停止させ、開放回数(K)記憶領域および大入賞口入球数(C)記憶領域に記憶されているデータをクリアするとともに、特図特電処理データ=5から特図特電処理データ=0にセットして、特別図柄記憶判定処理のサブルーチンに移す準備を行い、小当たり遊技処理を終了する。
【0175】
次に、主制御部110の制御コマンド送信処理を説明する。
図13は、本実施の形態における主制御部110による制御コマンド送信処理を示すフローチャートである。
【0176】
図9の主制御部110のメイン処理のステップS10の初期化処理における制御コマンド送信処理のタイミングや、主制御部110のタイマ割込み処理のステップS710の制御コマンド送信処理のタイミングになったら、ステップS711において、制御コマンド出力部500は、今回送信される制御コマンドが送信データ用記憶領域にセットされているかを参照することで、制御コマンドの送信タイミングか否かを判断する。
【0177】
制御コマンドがセットされている場合は、制御コマンド出力部500は、制御コマンドの送信タイミングであると判断する。そして、制御コマンド出力部500は、当該制御コマンドを誤り検査値生成部510の識別制御部520および記憶部530ならびに付加部550に出力し、ステップS712へと進む。制御コマンドがセットされていない場合は、制御コマンドの送信タイミングではないと判断し、制御コマンド送信処理を終了する。具体的には、メインCPU110aは、メインRAM110cの送信データ用記憶領域に、今回送信される制御コマンドが記憶されている場合、制御コマンドの送信タイミングであると判断し、当該制御コマンドを取得する。
【0178】
続いて、ステップS712において、誤り検査値生成部510は、制御コマンド出力部500が今回出力した制御コマンド、すなわち今回送信される制御コマンドを取得し、この制御コマンドがいずれのグループに属するかを識別する。さらに、この識別結果をグループ情報として記憶部530に記憶する。
【0179】
続いて、ステップS713において、誤り検査値生成部510は、今回送信する制御コマンドを上記グループにおけるN番目に送信される制御コマンドとして、記憶部530に記憶する。この変数(N)は、制御コマンド出力部500から出力された制御コマンドの個数を示す変数である。また、制御コマンドの個数は、制御コマンドのグループごとにそれぞれ設けられるため、上記識別されたグループをgとして表し、(Ng)と示す。なお、本実施の形態では、遊技機1の電源投入時に初期値として「1」がセットされ、電源がOFFされるまで後述するステップS726において順次カウントアップされるものとしている。
【0180】
次いで、ステップS714において、誤り検査値生成部510は、「Ng>8」であるか否かを判定する。すなわち、今回送信する制御コマンドが当該グループの9番目以降に送信される制御コマンド(具体的には、図6に示す制御コマンド9以降に送信される制御コマンド:また、図6においては、1つのグループ内における制御コマンドを説明しているため、所定のグループを表すgは省略している)であるか否かが判定される。このとき、「Ng>8」ではない、つまり「Ng≦8」であると判定された場合には、ステップS724に処理を移し、「Ng>8」であると判定された場合には、次のステップS715に処理を移す。
【0181】
ステップS715において、誤り検査値生成部510は、変数(n)および変数(k)をセットする。この変数(n)および変数(k)は、後述する制御コマンドビット情報Cgk、ビット抽出用マスク値Mgn、ビット情報Dnを決定するものである。具体的には、誤り検査値生成部510は、変数(n)に「0」をセットし、変数(k)に「Ng−8」をセットする。なお、変数(n)および変数(k)は、同一のタイミング(後述するステップS718)で同様に更新されるため、k=Ng−8+nとなっている。また、このとき、ビット抽出用マスク値Mgnの初期値、すなわち、ビット抽出用マスク値Mg0もセットする。
【0182】
ステップS716において、誤り検査値生成部510は、当該グループの過去に送信された制御コマンドのそれぞれから、ビット情報を抽出するための制御コマンドNgの制御コマンドビット情報Cgkを取得する。なお、図6では、Ng=1、つまり、当該グループの1番目に送信された制御コマンド1の制御コマンドビット情報をC1で示し、Ng=2、つまり、当該グループの2番目に送信された制御コマンド2の制御コマンドビット情報をC2で示し、・・・、Ng=8、つまり、当該グループの8番目に送信された制御コマンド8の制御コマンドビット情報をC8で示す。
【0183】
続いて、ステップS717において、誤り検査値生成部510は、当該グループの取得した制御コマンドビット情報Cgkと、当該グループのビット抽出用マスク値Mgnとから、ビット情報Dnを抽出する。具体的には、取得した制御コマンドビット情報Cgkとビット抽出用マスク値Mgnとの論理積をビット情報Dnとする。
【0184】
当該グループのビット抽出用マスク値Mgnは、図6に示すように、
[M0=00000001](2進数表示、以下同様)
[M1=00000010]
・・・
[M7=10000000]
と、M0,M1,・・・,M7と、nの値が増えるにつれて、2進数表示における桁数が1桁ずつ繰り上がるものとしている。表示的にみると、M1を左へ1ビットだけローテート(シフト)した値がM2になり、M2を左へ1ビットだけローテートした値がM3になるよう(以下同様)になっている。
【0185】
すなわち、ビット抽出用マスク値Mgn(n=0〜7)と制御コマンドビット情報Cgkとの論理積を抽出することにより、
(1)制御コマンドビット情報C1からは1桁目のみのビット情報を抽出し、
(2)制御コマンドビット情報C2からは2桁目のみのビット情報を抽出し、
・・・
(8)制御コマンドビット情報C8からは8桁目のみのビット情報を抽出することができる。
【0186】
これにより、制御コマンドNg−8〜制御コマンドNg−1までの制御コマンドからそれぞれ1桁ずつ異なる桁のビット情報を抽出することができる。このように、ビット情報の列(ビット列)を重複させないビット列の選択パターン(斜めパターン)をビット抽出用マスク値Mgnにより設定することができる。
なお、ビット抽出用マスク値Mgnは、グループごとに設定することができる。
【0187】
続いて、ステップS718において、誤り検査値生成部510は、変数(n)に「1」を加算して新たな変数(n)として更新する。また、変数(k)にも「1」を加算して新たな変数(k)として更新する。
【0188】
次いで、ステップS719において、誤り検査値生成部510は、「n<8」であるか否かを判定する。このとき、「n<8」であると判定された場合には、ステップS720に処理を移し、「n<8」ではないと判定された場合には、ステップS721に処理を移す。
【0189】
ステップS720において、誤り検査値生成部510は、ビット抽出用マスク値Mg(n−1)、すなわち、直前に使用したビット抽出用マスク値を、左へ1ビットだけシフトして、Mgnを生成して、ステップS716に戻り、上記処理を繰り返す。
【0190】
一方、「n<8」ではない(ステップS719においてNO)と判定された場合、ステップS721において、誤り検査値生成部510は、抽出したビット情報Dn(0≦n≦7)からビット情報Vdを生成する。具体的には、抽出したビット情報Dn(0≦n≦7)の論理和を算出し、これを新たなビット情報Vdとする。すなわち、上記ステップS717において、制御コマンド(Ng−8)〜制御コマンド(Ng−1)までの制御コマンドのそれぞれ1桁ずつ異なる桁から抽出されたビット情報を合成することにより、ビット情報Vdが生成される。
なお、図6中の点線で囲った部分は、制御コマンド1から制御コマンド8までの制御コマンドから1桁ずつ異なる桁から抽出したビット情報から生成されたビット情報Vdを示し、2点鎖線で囲った部分は、制御コマンド3から制御コマンド10までの制御コマンドから1桁ずつ異なる桁から抽出したビット情報から生成されたビット情報Vdを示している。
【0191】
続いて、ステップS722において、誤り検査値生成部510は、記憶部530に記憶されている(Ng−8)番目に送信された制御コマンドを削除する。これにより、記憶部530には、過去8番目まで遡って送信された制御コマンドを記憶しておくことができる。なお、本ステップS722の処理を行うことにより、記憶部530に記憶させる制御コマンド(過去に送信された制御コマンド)の総数を必要最小限な程度に留めることができ、記憶部530(ひいては主制御部110)における記憶領域の容量が圧迫されることを回避することができる。
【0192】
続いて、ステップS723において、付加部550は、誤り検査値生成部510にて生成されたビット情報Vdを誤り検査値Vdとして、今回送信する制御コマンドに付加して制御コマンド情報を生成し、送信部560に出力する。
すなわち、制御コマンド9を送信する場合、制御コマンド9に対応するグループの所定の過去に送信された制御コマンド(制御コマンド1から制御コマンド8)を用いて生成されたビット情報Vdが誤り検査値Vdとして付加されることになる。
【0193】
一方、誤り検査値生成部510が、「Ng>8」ではない(ステップS714においてNO)と判定した場合、ステップS724において、誤り検査値生成部510は、当該グループのNg番目の初期値を、付加部550に出力する。
【0194】
続いて、ステップS725において、付加部550は、今回送信する制御コマンドに誤り検査値として上記初期値を付加して制御コマンド情報を生成し、送信部560に出力する。
すなわち、上記ステップS714において、今回送信する制御コマンドが9番目よりも前(つまり1番目から8番目までのいずれかに送信される制御コマンドである)に送信される制御コマンドであると判定された場合には、誤り検査値としては初期値が付加される。
【0195】
次に、ステップS726において、誤り検査値生成部510は、変数(Ng)に「1」加算して、新たな変数(Ng)として更新する。
【0196】
続いて、ステップS727において、送信部560は、付加部550が生成した制御コマンド情報を受け取って中間制御部180に送信した後、本制御コマンド送信処理を終了する。
【0197】
[中間制御部の制御処理]
以下、本発明の実施の形態における遊技機1の中間制御部180の制御処理について説明する。
図14および図15は、本実施の形態における中間制御部180によるメイン処理を示すフローチャートである。
【0198】
図14、図15に示すように、ステップS3011において、中間制御部180のCPU180aは、初期化処理を行う。この初期化処理において、CPU180aは、電源投入に応じて、ROM180bからメイン処理に関するプログラムコードを読み込む。これとともに、CPU180aは、RAM180cに記憶されるフラグなどを初期化し、所定値に設定する処理を行う。
【0199】
続いて、ステップS3012において、CPU180aは、中間制御部180の受信部600の受信データ用記憶領域に制御コマンド情報が記憶されているか否かを確認して、制御コマンド情報を受信したか否かを判定する。CPU180aは、受信データ用記憶領域に制御コマンド情報が記憶されていなければ本ステップを繰り返し、受信データ用記憶領域に制御コマンド情報が記憶されていればステップS3013に処理を移す。
【0200】
続いて、ステップS3013において、中間制御部180の受信部600は、受信データ用記憶領域に記憶されている制御コマンド情報から制御コマンドおよび誤り検査値Vdを取得する。また、受信部600は、今回受信した制御コマンドを誤り検査値生成部610の識別制御部620および記憶部630、ならびに付加部660へ、取得した誤り検査値Vdを誤り検査部650へと出力する。
【0201】
続いて、ステップS3014において、誤り検査値生成部610は、今回受信した制御コマンドを取得し、この制御コマンドがいずれのグループに属するかを識別する。さらに、この識別結果をグループ情報として記憶部630に記憶する。
【0202】
続いて、ステップS3015において、誤り検査値生成部610は、今回受信した制御コマンドを上記グループにおけるN番目に受信した制御コマンドとして、記憶部630に記憶する。この変数(N)は、受信部600に送られた制御コマンドの個数を示す変数である。また、制御コマンドの個数は、主制御部110における処理と同様に、制御コマンドのグループごとにそれぞれ設けられるため、上記識別されたグループをgとして表し、(Ng)と示す。なお、本実施の形態では、遊技機1の電源投入時に初期値として「1」がセットされ、電源がOFFされるまで後述するステップS2026において順次カウントアップされるものとしている。
【0203】
次いで、ステップS3016において、誤り検査値生成部610は、「Ng>8」であるか否かを判定する。すなわち、今回送信する制御コマンドが当該グループの9番目以降に受信した制御コマンド(具体的には、図6に示す制御コマンド9以降に受信した制御コマンド)であるか否かが判定される。このとき、「Ng>8」ではない、つまり「Ng≦8」であると判定された場合には、ステップS3026に処理を移し、「Ng>8」であると判定された場合には、次のステップS3017に処理を移す。
【0204】
ステップS3017において、誤り検査値生成部610は、変数(n)および変数(k)をセットする。この変数(n)および変数(k)は、前述した制御コマンドビット情報Cgk、ビット抽出用マスク値Mgn、ビット情報Dn(それぞれ、図6参照)を決定するものである。具体的には、誤り検査値生成部610は、変数(n)に「0」をセットし、変数(k)に「Ng−8」をセットする。
【0205】
ステップS3018において、誤り検査値生成部610は、当該グループの過去に受信した制御コマンドのそれぞれから、ビット情報を抽出するための制御コマンドNgの制御コマンドビット情報Cgkを取得する。
【0206】
続いて、ステップS3019において、誤り検査値生成部610は、当該グループの取得した制御コマンドビット情報Cgkと、当該グループのビット抽出用マスク値Mgnとから、ビット情報Dnを抽出する。具体的には、取得した制御コマンドビット情報Cgkとビット抽出用マスク値Mgnとの論理積をビット情報Dnとする。
【0207】
続いて、ステップS3020において、誤り検査値生成部610は、変数(n)に「1」を加算して新たな変数(n)として更新する。また、変数(k)にも「1」を加算して新たな変数(k)として更新する。
【0208】
次いで、ステップS3021において、誤り検査値生成部610は、「n<8」であるか否かを判定する。このとき、「n<8」であると判定された場合には、ステップS3022に処理を移し、「n<8」ではないと判定された場合には、ステップS3023に処理を移す。
【0209】
ステップS3022において、誤り検査値生成部610は、ビット抽出用マスク値Mg(n−1)、すなわち、直前に使用したビット抽出用マスク値を、左へ1ビットだけローテートして、Mgnを生成して、ステップS3018に戻り、上記処理を繰り返す。
【0210】
一方、「n<8」ではない(ステップS3021においてNO)と判定された場合、ステップS3023において、誤り検査値生成部610は、抽出したビット情報Dn(0≦n≦7)から検査値Vd´を生成する。具体的には、抽出したビット情報Dn(0≦n≦7)の論理和を算出し、これを新たな検査値Vd´とする。
【0211】
続いて、ステップS3024において、誤り検査値生成部610は、記憶部630に記憶されている(Ng−8)番目に受信した制御コマンドを削除する。これにより、記憶部630には、過去8番目まで遡って受信された制御コマンドを記憶しておくことができる。なお、本ステップS3024の処理を行うことにより、記憶部630に記憶させる制御コマンド(過去に受信した制御コマンド)の総数を必要最小限な程度に留めることができ、記憶部630(ひいては演出制御部120)における記憶領域の容量が圧迫されることを回避することができる。
【0212】
続いて、ステップS3025において、中間制御部180の誤り検査部650は、ステップS3013で取得した誤り検査値Vdと、誤り検査値生成部610が今回生成した検査値Vd´を照合し、誤り検査を行う。
【0213】
一方、誤り検査値生成部610が、「Ng>8」でない(ステップS3016においてNO)と判定した場合、ステップS3026において、誤り検査値生成部610は、当該グループのNg番目の初期値を、中間制御部180の誤り検査部650に出力する。
【0214】
続いて、ステップS3027において、中間制御部180の誤り検査部650は、ステップS3013で取得した誤り検査値Vdと、上記誤り検査値の初期値を照合し、誤り検査を行う。
【0215】
次に、ステップS3028において、誤り検査値生成部610は、変数(Ng)に「1」加算して、新たな変数(Ng)として更新する。
【0216】
続いて、ステップS3029において、誤り検査部650は、上記ステップS3025またはステップS3027における誤り検査の結果、2つの誤り検査値が同一の場合は、検査結果が正しいので、今回送信された制御コマンドの正当性の認証が成功であると判断し(ステップS3029の結果がYES)、ステップS3030へ処理を移し、非同一の場合は、誤り検査部650は、検査結果が正しくないので、制御コマンドに正当性がなく、認証が不成功であると判断し(ステップS3029の結果がNO)、ステップS3031へ処理を移す。
【0217】
ステップS3030において、誤り検査部650は、制御コマンドの正当性の認証が成功したことを示す認証結果データを生成し、付加部660へ出力する。
一方、ステップS3031において、誤り検査部650は、制御コマンドの正当性の認証が不成功であったことを示す認証結果データを生成し、付加部660へ出力する。
【0218】
ステップS3032において、付加部660は、受信部600から出力された今回受信した制御コマンドに、誤り検査部650から出力された認証結果データを付加して、認証結果データ付き制御コマンドを生成し、送信部670に出力する。
【0219】
続いて、ステップS3033において、送信部670は、付加部660から出力された認証結果データ付き制御コマンドを演出制御部120へ送信する。その後、ステップS3012へと戻り、上記処理を繰り返す。
【0220】
[演出制御部の制御処理]
以下、本発明の実施形態に係る遊技機1の演出制御部120の制御処理について説明する。まず、演出制御部120のメイン処理について説明する。
図16は、本実施形態に係る演出制御部120によるメイン処理を示すフローチャートである。
【0221】
ステップS1100において、サブCPU120aは、初期化処理を行う。この処理において、サブCPU120aは、電源投入に応じて、サブROM120bからメイン処理に関するプログラムコードを読み込む。これとともに、サブCPU120aは、サブRAM120cに記憶されるフラグなどを初期化し、所定値に設定する処理を行う。この処理が終了した場合には、ステップS1200へ処理を移す。
【0222】
ステップS1200において、サブCPU120aは、演出用乱数更新処理を行う。この処理において、サブCPU120aは、サブRAM120cに記憶される演出用乱数値、演出図柄決定用乱数、演出モード決定用乱数等を更新する処理を行う。以降は、所定の割込処理が行われるまで、上記ステップS1200の処理を繰り返し行う。
【0223】
次に、演出制御部120の割込処理について説明する。
図17は、演出制御部120による割込処理の手順の一例を示すフローチャートである。サブCPU120aは、演出制御部120に設けられたクロックパルス発生回路(図示せず)から出力されるクロック信号に基づいて、所定の周期(例えば4ミリ秒)ごとに、演出制御部120のタイマ割込処理を実行する。
【0224】
ステップS1300において、サブCPU120aは、サブCPU120aのレジスタに記憶されている情報をスタック領域に退避させる。
【0225】
ステップS1400において、サブCPU120aは、演出制御部120で用いられる各種タイマカウンタの更新処理を行う。
【0226】
ステップS1500において、演出制御部120は、コマンド解析処理を行う。この処理において、演出制御部120は、受信データ用記憶領域に書き込まれた制御コマンドの種別を解析する処理を行う。
また、コマンド解析処理では、サブCPU120aは、中間制御部180から送信された制御コマンド情報に含まれる認証結果データを解析し、解析結果に応じた処理を行う。なお、コマンド解析処理の詳細については後述する。
【0227】
ステップS1600において、サブCPU120aは、演出ボタン検出スイッチ35aの信号のチェックを行い、演出ボタン35からの入力に関する演出用入力制御処理を行う。
【0228】
ステップS1700において、サブCPU120aは、サブRAM120cの送信データ用記憶領域にセットされた制御コマンドや各種データを、ランプ制御部140や画像制御部150へ送信するための処理である演出用出力制御処理を行う。
【0229】
ステップS1800において、サブCPU120aは、ステップS1300で退避した情報をサブCPU120aのレジスタに復帰させる。
【0230】
次に、演出制御部120のコマンド解析処理について説明する。
図18および図19は、本実施形態に係る演出制御部120によるコマンド解析処理(コマンド解析処理1=図18、コマンド解析処理2=図19)を示すフローチャートである。なお、図19のコマンド解析処理2は、図18のコマンド解析処理1に引き続いて行われるものである。
【0231】
ステップS1501において、サブCPU120aは、受信部600の受信データ用記憶領域に制御コマンド情報が記憶されているか否かを確認して、制御コマンド情報を受信したか否かを判定する。
サブCPU120aは、受信データ用記憶領域に制御コマンド情報が記憶されていなければコマンド解析処理を終了し、受信データ用記憶領域に制御コマンド情報が記憶されていればステップS2000に処理を移す。
【0232】
ステップS2000において、サブCPU120aは、受信データ用記憶領域に記憶された認証結果データ付き制御コマンドから認証結果データを取得し、認証結果データ解析処理を行う。この認証結果データ解析処理の詳細については、図20を用いて後述する。認証結果データ解析処理が終了したらステップS1510へ進む。
【0233】
ステップS1510において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、デモ指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドがデモ指定コマンドであれば、ステップS1511に処理を移し、デモ指定コマンドでなければステップS1520に処理を移す。
【0234】
ステップS1511において、サブCPU120aは、デモ演出パターンを決定するデモ演出パターン決定処理を行う。
具体的には、デモ演出パターンを決定し、決定したデモ演出パターンを演出パターン記憶領域にセットするとともに、決定したデモ演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定したデモ演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
【0235】
ステップS1520において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、特別図柄記憶指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが特別図柄記憶指定コマンドであれば、ステップS1521に処理を移し、特別図柄記憶指定コマンドでなければステップS1530に処理を移す。
【0236】
ステップS1521において、サブCPU120aは、特別図柄記憶指定コマンドを解析して、液晶表示装置31に表示させる特別図柄の保留画像(以下、「特図保留画像」という)の表示個数を決定するとともに、決定した特図保留画像の表示個数に対応する特図表示個数指定コマンドを画像制御部150とランプ制御部140に送信する特別図柄記憶数決定処理を行う。
【0237】
ステップS1530において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、演出図柄指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが演出図柄指定コマンドであれば、ステップS1531に処理を移し、演出図柄指定コマンドでなければステップS1540に処理を移す。
【0238】
ステップS1531において、サブCPU120aは、受信した演出図柄指定コマンドの内容に基づいて、液晶表示装置31に停止表示させる演出図柄36を決定する演出図柄決定処理を行う。
具体的には、演出図柄指定コマンドを解析して、大当たりの有無、大当たりの種別に応じて演出図柄36の組み合わせを構成する演出図柄データを決定し、決定された演出図柄データを演出図柄記憶領域にセットするとともに、演出図柄データを画像制御部150とランプ制御部140に送信するため、演出図柄データを示す停止図柄指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
【0239】
ステップS1532において、サブCPU120aは、上記ステップ1100において更新されている演出モード決定用乱数値から1つの乱数値を取得し、取得した演出モード決定用乱数値と受信した演出図柄指定コマンドに基づいて、複数の演出モード(例えば、ノーマル演出モードやチャンス演出モード)の中から1つの演出モードを決定する演出モード決定処理を行う。また、決定した演出モードは、演出モード記憶領域にセットされる。
【0240】
ステップS1540において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、変動パターン指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが変動パターン指定コマンドであれば、ステップS1541に処理を移し、変動パターン指定コマンドでなければステップS1550に処理を移す。
【0241】
ステップS1541において、サブCPU120aは、上記ステップS1200(図16参照)において更新されている演出用乱数値から1つの乱数値を取得し、取得した演出用乱数値、受信した変動パターン指定コマンドおよび演出モード記憶領域にセットされている演出モードに基づいて、複数の変動演出パターンの中から1つの変動演出パターンを決定する変動演出パターン決定処理を行う。
具体的には、ノーマル演出モードであれば、変動演出パターン決定テーブルを参照し、取得した演出用乱数値に基づいて1つの変動演出パターンを決定し、決定した変動演出パターンを演出パターン記憶領域にセットするとともに、決定した変動演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定した変動演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
その後、かかる演出パターンに基づいて、液晶表示装置31、音声出力装置32、演出用駆動装置33、演出用照明装置34が制御されることになる。なお、ここで決定した変動演出パターンに基づいて、演出図柄36の変動態様が決定されることとなる。
【0242】
ステップS1550において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、図柄確定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが図柄確定コマンドであれば、ステップS1551に処理を移し、図柄確定コマンドでなければステップS1560に処理を移す。
【0243】
ステップS1551において、サブCPU120aは、演出図柄36を停止表示させるために、演出図柄を停止表示させるための停止指定コマンドをサブRAM120cの送信データ用記憶領域にセットする演出図柄停止表示処理を行う。
【0244】
ステップS1560において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、遊技状態指定コマンドであるか否かを判定する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが遊技状態指定コマンドであればステップS1561に処理を移し、遊技状態指定コマンドでなければステップS1570に処理を移す。
【0245】
ステップS1561において、サブCPU120aは、受信した遊技状態指定コマンドに基づいた遊技状態を示すデータをサブRAM120cにある遊技状態記憶領域にセットする。
【0246】
ステップS1570において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、オープニング指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドがオープニング指定コマンドであればステップS1571に処理を移し、オープニング指定コマンドでなければステップS1580に処理を移す。
【0247】
ステップS1571において、サブCPU120aは、当たり開始演出パターンを決定する当たり開始演出パターン決定処理を行う。
具体的には、オープニング指定コマンドに基づいて当たり開始演出パターンを決定し、決定した当たり開始演出パターンを演出パターン記憶領域にセットするとともに、決定した当たり開始演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定した当たり開始演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
【0248】
ステップS1580において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、大入賞口開放指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが大入賞口開放指定コマンドであればステップS1581に処理を移し、大入賞口開放指定コマンドでなければステップS1590に処理を移す。
【0249】
ステップS1581において、サブCPU120aは、大当たり演出パターンを決定する大当たり演出パターン決定処理を行う。
具体的には、大入賞口開放指定コマンドに基づいて大当たり演出パターンを決定し、決定した大当たり演出パターンを演出パターン記憶領域にセットするとともに、決定した大当たり演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定した大当たり演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
【0250】
ステップS1590において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、エンディング指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドがエンディング指定コマンドであればステップS1591に処理を移し、エンディング指定コマンドでなければステップS1600(図17参照)に処理を移す。
【0251】
ステップS1591において、サブCPU120aは、当たり終了演出パターンを決定する当たり終了演出パターン決定処理を行う。
具体的には、エンディング指定コマンドに基づいて当たり終了演出パターンを決定し、決定した当たり終了演出パターンを演出パターン記憶領域にセットするとともに、決定した当たり終了演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定した当たり終了演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。本処理を終了すると、コマンド解析処理が終了する。
【0252】
次に、演出制御部120の認証結果データ解析処理について説明する。
図20は、本実施の形態における演出制御部120による認証結果データ解析処理を示すフローチャートである。
【0253】
図20に示すように、ステップS2001において、演出制御部120のサブCPU120aは、受信データ用記憶領域に書き込まれた認証結果データ付き制御コマンドから認証結果データを取得する。
【0254】
続いて、ステップS2002において、サブCPU120aは、取得した認証結果データが、認証成功を示す結果であるか否かを判定する。サブCPU120aは、認証結果データが認証成功を示す結果である場合、今回の中間制御部180での認証が成功し、遊技機1の正当性を認証することができたと判断して、本認証結果データ解析処理を終了する。
一方、サブCPU120aは、認証結果データが認証不成功を示す結果である場合、今回の中間制御部180での認証が不成功であり、遊技機1で不正行為や通信エラーが発生したおそれがあると判断し、ステップS2003へ移行する。
【0255】
ステップS2003において、サブCPU120aは、遊技機1で不正行為や通信エラーが発生したおそれがあると判断したため、その旨を報知するために報知信号を出力し、本認証結果データ解析処理を終了する。
【0256】
サブCPU120aは、生成した報知信号を、例えば、画像制御部150やランプ制御部140、あるいは遊技機1を管理するホールコンピュータ等へ送信する。画像制御部150やランプ制御部140等は、受信した報知信号に基づいて、遊技機1で不正行為や通信エラーが発生したおそれがある旨を報知する演出を実行する。この演出は、例えば、液晶表示装置31に通常出現しないキャラクタを出現させたり、通常出現するキャラクタを通常とは異なる方法で出現させたりするなどである。また、液晶表示装置31の輝度を変えたり、色を変えたり、ランプ制御部140に対して所定のランプを表示制御するようにしてもよい。また、音声出力装置32からアラーム音などの特別な音声を出力するなど、画像制御部150に対して所定の音声を出力する音声制御をするようにしてもよい。いずれにしても、遊技店の従業員が当該遊技機1の前を通過した際に、その状態に気付くようにしてあればよい。また、この演出は、顧客がその状態に気付かないような演出でもよく、また、顧客が容易に気付く演出であってもよい。顧客が容易に気付く演出にすれば、不正行為を効率的に抑止することができる。
【0257】
また、報知信号に「大当たり中」や「確率変動中」などの遊技機1の遊技状態に関する情報を含めてもよい。これらの遊技状態に関する情報に基づいて、遊技機1を管理するセンター制御装置などによって不正行為が行われているか否かの判断を行ってもよい。例えば、大当たり中や確率変動中は入賞が集中していても正常である場合がある。よって、大当たり中や確率変動中は、その他の状態とは異なる条件で不正行為のおそれがあるか否かについて判断するのがよい。また、遊技状態に関する情報は、報知信号に含めずに別信号として出力するようにしてもよい。この場合、従業員は、報知信号と遊技状態に関する情報の両方に基づいて、不正行為のおそれがあるか否かについて判断する。
【0258】
なお、主制御部110と払出制御部130との間に中間制御部180を設けた場合の認証処理は、主制御部110と演出制御部120との間に中間制御部180を設けた場合の認証処理とほぼ同様の手順で行われるため説明を省略する。
【0259】
以上のように、本実施の形態では、主制御部110は、制御コマンドを複数のグループに分類し、当該グループごとに所定の過去に出力された制御コマンドを保存している。そして主制御部110は、今回送信する制御コマンドに、当該グループの所定の過去に出力された制御コマンドを少なくとも複数個用いて生成した誤り検査値を付加して制御コマンド情報として中間制御部180に送信する。ここで、主制御部が生成する誤り検査値は、制御コマンドに応じたグループの所定の過去に出力された複数の制御コマンドから各制御コマンドを構成するビット情報の一部をそれぞれ抽出して、この抽出されたビット情報を合成してから生成される。
【0260】
一方、中間制御部180は、制御コマンドに応じたグループごとに所定の過去に受信した制御コマンドを保存している。そして、中間制御部180は、今回受信した制御コマンド情報に含まれる誤り検査値と、当該グループの所定の過去に受信した制御コマンドを少なくとも複数個用いて生成した誤り検査値とを照合して誤り検査を行う。ここで、中間制御部180が生成する誤り検査値は、当該グループの所定の過去に受信した複数の制御コマンドから各制御コマンドを構成するビット情報の一部をそれぞれ抽出して、この抽出されたビット情報を合成してから生成される。
すなわち、本実施の形態では、過去に出力した当該グループの複数の制御コマンドから生成された誤り検査値を今回送信する制御コマンドに付加して、主制御部110から中間制御部180へ送信している。
【0261】
通常チェックサム等の誤り検査値は生成元の制御コマンドに付加されて通信エラーチェックに利用される。これに対して、本実施の形態の遊技機1は、上述のように、過去に送信した当該グループの複数の制御コマンドから生成された誤り検査値を今回送信する制御コマンドに付加する。このような従来にない新規かつ簡易な手法を用いることにより、不正者が制御コマンドと誤り検査値を不正に搾取しても制御コマンドと誤り検査値の関係を容易に知ることができない。したがって、本実施の形態によれば、不正者による不正を防止することができ、セキュリティ強度を向上させることができる。
【0262】
また、本実施の形態では、当該グループの複数の制御コマンドのそれぞれから、ビット情報の一部を抽出して、抽出したビット情報を合成(再構成、並び替えなど)して生成されたビット情報を誤り検査値とした。さらに、抽出するビット情報は、制御コマンドごとに異なる桁のビット情報とした。すなわち、1回の送信機会を利用して、ビット列を重複させずに「斜め」を形成するビット列でビット情報が抽出される。このように、抽出する対象となっている全ての制御コマンドから異なるビット列にてビット情報を抽出することにより、ビット情報がどのように抽出されているかを分かりづらくしつつも、簡便な抽出方法を採用することができる。これにより、不正行為検出の確度およびセキュリティ強度を高めることができる。
【0263】
このため、不正者が制御コマンドと誤り検査値を不正に搾取しても制御コマンドと誤り検査値の関係を容易に知ることができない。万一、不正者が制御コマンドのビット情報に基づいて誤り検査値が生成されていることに気付いたとしても、どのビット情報をどのように利用しているかまでの特定をすることはほぼ不可能である。したがって、本実施の形態によれば、不正者による不正を防止することができ、セキュリティ強度を向上させることができる。
例えば、誤り検査値を分析するためには、以下のようなことを知る必要がある。
1.誤り検査値の生成に利用するビットパターンはどのようなものであるか。
2.制御コマンドがどのようにグループ分けされているのか。
3.ビット情報を抽出する時に、いくつの制御コマンドを利用するのか。
4.利用する制御コマンドは、どのように選択するのか。
5.一つの制御コマンドから一回に何ビット抽出するのか。
6.抽出したビットパターン情報に、さらなる演算が実施されているのか。
7.演算が用いられている場合、どのような演算が用いられているのか。
さらに、誤り検査値の生成に用いる制御コマンド同士は、遊技状態に基づくランダム、かつ、間欠的に送信された制御コマンドから構成されたり、連続的に送信された制御コマンドから構成されたりするため、誤り検査値を予測することができない。
したがって、誤り検査値が不正者に分析されにくく、仮に、制御コマンドと誤り検査値とが不正に搾取されても、所望の誤り検査値を生成されることがなく、不正行為を抑制する効果を高めることができる。
【0264】
また、主制御部110が所定の過去に送信した当該グループの制御コマンドから生成した誤り検査値を、今回送信する制御コマンドに付加して送信し、中間制御部180が認証処理を行うことにより、今回受信した制御コマンドの正当性を認証するとともに、所定の過去に受信した当該グループの制御コマンド、すなわち、今回付加された誤り検査値の生成元となった制御コマンドの正当性をも認証することができる。すなわち、グループごとの制御コマンドの連続性を認証することができる。
【0265】
また、本実施の形態では、各制御コマンドに誤り検査値を付加して主制御部110から中間制御部180に送信し、中間制御部180が制御コマンドごとに認証処理を行うので、常時不正を検査することができる。
【0266】
また、本実施の形態の遊技機1においては、誤り検査値を通信エラーチェック用の検査値としても用いることができ、このように誤り検査値を用いることにより、誤り検査を行うための検査値と通信エラーチェック用の検査値とを別に生成するための手段を設けることなく、簡単な構成で不正者による不正を防止することができ、セキュリティ強度を向上させることができる。すなわち、遊技機の主制御基板のリソースが限られているという状況下において、セキュリティ強度を向上させつつ、主制御基板の処理負荷の増大を抑制することができる。
【0267】
また、本実施の形態によれば、認証処理は、中間制御部180のみが実行するので、周辺部300を構成するCPUの処理負荷の増大を抑制することができる。このため、周辺部300の処理速度が低下し、演出のための表示がスムーズに行われないなどの問題の発生を防止しつつ、制御コマンドの認証を行うことができる。
【0268】
さらに、本実施の形態によれば、認証処理を実行する中間制御部180と、所定の処理を行う周辺部300と、が別個独立しているため、認証用のプログラムまたはハードウェアと、所定の処理用のプログラムまたはハードウェアと、を別個に設計することができる。これにより、所定の処理を行う周辺部300の処理に認証機能を追加する場合と比較して、認証機能を追加するタイミングの設計・機能の実装・機能の検証、ハードウェアの設計などをより簡単に実現することができる。また、認証用のプログラムおよび所定の処理用のプログラムの構成が比較的簡単となるため、他の機能と整合性を保つことが容易となる。
【0269】
さらにまた、本実施の形態によれば、遊技機1の機種ごとに所定の処理が異なる場合であっても、認証処理は共通化が可能であるため、遊技機1の機種ごとのプログラム設計やハードウェア設計が容易であり、設計時間の短縮化を図ることができるとともに、作業効率を向上させることができる。
【0270】
以上、本発明の遊技機の一例である一実施の形態について詳細に説明したが、本発明の遊技機は上記実施の形態に限定されない。
【0271】
また、上記実施の形態では、制御コマンドを構成する「MODE」の情報のみを例にとってビット情報を抽出するものとしたがこれに限られない。例えば、制御コマンドを構成する「DATA」の情報からビット情報を抽出してもよい。また、制御コマンド情報(1バイトの「MODE」の情報、1バイトの「DATA」の情報、1バイトの誤り検査値の情報)からビット情報を抽出するものとしてもよいし、制御コマンド情報を構成する上記各情報のいずれか又は組み合わせたものを、ビット情報を抽出する対象としてもよい。具体的には、
「DATA」の1バイトの情報からビット情報を抽出する。
「誤り検査値」の1バイトの情報からビット情報を抽出する。
「MODE」+「DATA」の2バイトの情報からビット情報を抽出する。
「MODE」+「誤り検査値」の2バイトの情報からビット情報を抽出する。
「DATA」+「誤り検査値」の2バイトの情報からビット情報を抽出する。
「MODE」+「DATA」+「誤り検査値」の3バイトの情報からビット情報を抽出する。
なお、このように、制御コマンド情報からビット情報を抽出する場合、上記実施の形態の誤り検査値演算部540が、本発明の第1演算手段を構成し、誤り検査値演算部640が、本発明の第2演算手段を構成するようにすればよい。
【0272】
また、記憶部530および記憶部630にグループごとに保存する制御コマンドの総数についても8個に限られない。例えば、ビット情報を抽出する対象となるデータ(制御コマンド、制御コマンド情報など)のビット情報が24ビットであれば、24個の制御コマンドを記憶部に保存するようにしておけば、保存された24個のデータのそれぞれから1ビットずつビット情報を抽出して24ビットの誤り検査値を生成することができる。
このように、抽出するビット情報が大きくなればその分だけ、どのビット情報を抽出したのか不正者が解析することをより困難なものとすることができる。したがって、制御コマンド情報からビット情報を抽出して誤り検査値を生成することにより、不正者による不正を一層防止することができ、セキュリティ強度を向上させることができる。
【0273】
また、上記実施の形態では、複数の制御コマンドのそれぞれ異なる桁から1ビットずつビット情報を抽出して、抽出した桁ごとにビット情報を並べて形成(再構成)したビット情報を誤り検査値としたが、これに限られない。例えば、抽出するビット数は、2ビットや3ビットとしてもよい。これは、制御コマンドを構成するビット情報の全てではなく、一部を抽出するものであれば上記実施の形態と同様の効果を得ることができるからである。ただし、抽出するビット数を抑えることにより、より複数の制御コマンド(より多くの制御コマンド)からビット情報を抽出して誤り検査値を生成することが可能となる。これにより、不正者が制御コマンドと誤り検査値を不正に搾取しても制御コマンドと誤り検査値の関係を容易に知ることが一層困難なものとなる。
また、再構成したビット情報をさらに並べ替えたり、再構成したビット情報にその他の演算(四則演算や論理演算など)を加えて行ったり、上記再構成したビット情報に別の要素(例えば、過去に生成した誤り検査値など)を加えて演算を行ったりして、誤り検査値を生成するものとしてもよい。このようにすれば、不正者が制御コマンドと誤り検査値を不正に搾取しても制御コマンドと誤り検査値の関係を容易に知ることが一層困難なものとすることができる。したがって、本実施の形態によれば、不正者による不正を防止することができ、セキュリティ強度を向上させることができる。
【0274】
また、上記実施の形態では、グループごとにおけるN番目に送信する制御コマンドに付加する誤り検査値を、当該グループの(N−1)番目以前に送信された制御コマンドを用いて生成するものとしたが、これに限られない。例えば、N番目に送信する制御コマンドを加えてもよい。すなわち、N番目に送信する制御コマンドに付加する誤り検査値を生成するのに、当該N番目の制御コマンドからもビット情報の一部が抽出されることになる。このように構成しても、上記実施の形態と同様の効果を得ることができるとともに、記憶部530および記憶部630に記憶させる制御コマンドの総数をさらに削減することができ、記憶部530および記憶部630(ひいては主制御部110、中間制御部180)における記憶領域の容量が圧迫されることをより一層回避することができる。
【0275】
さらに、上記グループの分け方を、遊技モードによって分けることもできる。
ここで、遊技モードとは、遊技状態であったり、大当たりの当選確率の違いであったり、所定の演出の違いであったりと、所定の条件で、複数の遊技や1回の遊技を、複数の状況に分けたそれぞれのモードのことをいう。
例えば、このような遊技モードによるグループ分けとして、グループAに、確率変動遊技状態中に送信する制御コマンドを分類し、グループBに、その他の遊技状態中に送信する制御コマンドを分類する。このように分類することにより、同一の制御コマンドであっても、その制御コマンドを送信するタイミング(遊技状態)によって、どのグループに属するかが変わるため、誤り検査値および誤り検査の生成方法の解読を困難にすることができる。
【0276】
さらに、上記グループ分けは、確率変動中の大当たりと通常大当たりとを別グループに分けたり、大当たり遊技状態中と通常遊技状態中とを別グループに分けるようにしても良い。大当たり遊技状態中と通常遊技状態中とを別グループに分ける場合、大当たりコマンドを受信すると、遊技モードを変更し、この制御コマンドの受信から今までの通常遊技状態中のグループから大当たり遊技状態中のグループへ切り替えて、各処理を行うこととなる。
【0277】
さらに、上記実施の形態では、ビット抽出用マスク値Mgnにより、抽出するビット情報が重複しないビット列(斜めのビット列)が選択されるパターン(斜め選択パターン)について説明したが、これに限られない。例えば、ビット抽出用マスク値Mgnにより、選択するビット列の一部(または全部)が重複する選択パターンであってもよいし、選択されるビット列が「V」字のようになる選択パターンや「く」の字のようになる選択パターン(以下、「くの字選択パターン」という)を採用してもよい。
【0278】
以下では、上記実施の形態の変形例1として、ビット列の選択パターンが「く」の字になる「くの字選択パターン」を採用した場合の主制御部110による制御コマンド送信処理について説明する。なお、以下の変形例1において、上記実施の形態と同じ符号、ステップについては上記実施の形態において説明したものと同じであるものとして、説明を省略する。
【0279】
(変形例1)
図21および図22は、変形例1における主制御部110による制御コマンド送信処理を示すフローチャートである。ステップS711〜ステップS715、ステップS722〜727までは図13で説明したとおりであるので説明は省略し、ステップS811〜ステップS819についてのみ説明する。また、図23は、本変形例1における制御コマンド情報の形式を説明する図である。
【0280】
ステップS811において、誤り検査値生成部510は、当該グループの過去に送信された制御コマンドのそれぞれから、ビット情報を抽出するための制御コマンドNgの制御コマンドビット情報Cgkを取得する。
【0281】
続いて、ステップS812において、誤り検査値生成部510は、当該グループの取得した制御コマンドビット情報Cgkと、当該グループのビット抽出用マスク値Mgnとから、ビット情報Dnを抽出する。具体的には、取得した制御コマンドビット情報Cgkとビット抽出用マスク値Mgnとの論理積をビット情報Dnとする。
【0282】
当該グループのビット抽出用マスク値Mgnは、図23に示すように、
[M0=00000011](2進数表示、以下同様)
[M1=00001100]
[M2=00110000]
[M3=11000000]
[M4=11000000]
[M5=00110000]
[M6=00001100]
[M7=00000011]
と、M0,M1,・・,M3まではnの値が増えるにつれて、2進数表示における桁数が2桁ずつ繰り上がるものとしている。表示的にみると、M0を左へ2ビットだけローテートした値がM1になり、M1を左へ2ビットローテートした値がM2になるよう(以下同様)になっている。
また、M4,M5,・・,M7ではnの値が増えると、2進数表示における桁数が2桁ずつ繰り下がるものとしている。表示的にみると、M4を右へ2ビットだけシフトした値がM5になる(以下同様)。
【0283】
また、ビット抽出用マスク値Mgn(n=0〜7)と制御コマンドビット情報Cgkとの論理積を抽出することにより、
(1)制御コマンドビット情報C1からは1桁目および2桁目のみのビット情報を抽出し、
(2)制御コマンドビット情報C2からは3桁目および4桁目のみのビット情報を抽出し、
(3)制御コマンドビット情報C3からは5桁目および6桁目のみのビット情報を抽出し、
(4)制御コマンドビット情報C4からは7桁目および8桁目のみのビット情報を抽出し、
(5)制御コマンドビット情報C5からは7桁目および8桁目のみのビット情報を抽出し、
(6)制御コマンドビット情報C6からは5桁目および6桁目のみのビット情報を抽出し、
(7)制御コマンドビット情報C7からは3桁目および4桁目のみのビット情報を抽出し、
(8)制御コマンドビット情報C8からは1桁目および2桁目のみのビット情報を抽出することができる。
言い換えれば、本変形例1では、ビット抽出用マスク値Mgnの初期値(M0)およびシフトさせるビット数により、複数の制御コマンドビット情報Cgnから、あたかも平仮名の「く」の字を模したビット列にてビット情報を抽出することができる。
【0284】
続いて、ステップS813において、誤り検査値生成部510は、変数(n)に「1」を加算して新たな(n)として更新する。また、変数(k)にも「1」を加算して新たな変数(k)として更新する。
【0285】
次いで、ステップS814において、誤り検査値生成部510は、「n<8」であるか否かを判定する。このとき、「n<8」であると判定された場合には、ステップS815に処理を移し、「n<8」ではないと判定された場合には、ステップS819に処理を移す。
【0286】
ステップS815において、誤り検査値生成部510は、「n<4」であるか否かを判定する。このとき、「n<4」であると判定された場合には、ステップS816に処理を移し、「n<4」ではないと判定された場合には、ステップS817に処理を移す。
【0287】
ステップS816において、誤り検査値生成部510は、ビット抽出用マスク値Mg(n−1)、すなわち、直前に使用したビット抽出用マスク値を、左へ2ビットだけシフトして、Mgnを生成して、ステップS811に戻り、上記処理を繰り返す。
【0288】
一方、「n<4」ではない(ステップS815においてNO)と判定した場合、ステップS817において、誤り検査値生成部510は、「n>4」であるか否かを判定する。すなわち、誤り検査値生成部510は、「n=4」であるか否かを判定する。このとき、「n>4」であると判定された場合には、ステップS818に処理を移し、「n>4」ではないと判定された場合には、ステップS811に戻り、上記処理を繰り返す。
【0289】
ステップS818において、誤り検査値生成部510は、ビット抽出用マスク値Mg(n−1)、すなわち、直前に使用したビット抽出用マスク値を、右へ2ビットだけシフトして、Mgnを生成して、ステップS811に戻り、上記処理を繰り返す。
【0290】
一方、「n<8」ではない(ステップS814においてNO)と判定された場合、ステップS819において、誤り検査値生成部510は、抽出したビット情報Dn(0≦n≦7)からビット情報Vdを生成する。具体的には、抽出したビット情報Dn(0≦n≦7)の排他的論理和(XOR)を算出し、これを新たなビット情報Vdとする。
【0291】
すなわち、
[Vd= D0 XOR D1 XOR D2 XOR D3
XOR D4 XOR D5 XOR D6 XOR D7]
これにより、制御コマンド(Ng−8)〜制御コマンド(Ng−1)までの制御コマンドのそれぞれから抽出されたビット情報から、ビット情報Vdが生成される。
なお、図23中の点線で囲った部分は、N=9の場合にビット情報が抽出されるビット列を示している。すなわち、「く」の字を模したビット列からビット情報が抽出されている。
【0292】
上記ステップS811〜ステップS819における処理により生成されたビット情報Vdは、既に説明した上記ステップS722〜ステップS726の処理を経て、ステップS727において制御コマンド情報として送信される。
【0293】
図24および図25は、本変形例1における中間制御部180によるメイン処理を示すフローチャートである。なお、図14および図15で説明した内容と同じステップ番号(ステップS3011〜ステップS3017、ステップS3024〜ステップS3033)の処理については説明を省略し、図14および図15と異なるステップ番号(ステップS3111〜ステップS3119)の処理についてのみ、説明する。
【0294】
ステップS3111において、中間制御部180の誤り検査値生成部610は、当該グループにおける過去に受信した制御コマンドのそれぞれから、ビット情報を抽出するための制御コマンドNgの制御コマンドビット情報Cgkを取得する。
【0295】
続いて、ステップS3112において、誤り検査値生成部610は、当該グループの取得した制御コマンドビット情報Cgkと、当該グループのビット抽出用マスク値Mgnとから、ビット情報Dnを抽出する。具体的には、取得した制御コマンドビット情報Cgkとビット抽出用マスク値Mgnとの論理積をビット情報Dnとする(ビット抽出用マスク値Mgnについては、図23および上記ステップS812を参照)。
【0296】
続いて、ステップS3113において、誤り検査値生成部610は、変数(n)に「1」を加算して新たな(n)として更新する。また、変数(k)にも「1」を加算して新たな変数(k)として更新する。
【0297】
次いで、ステップS3114において、誤り検査値生成部610は、「n<8」であるか否かを判定する。このとき、「n<8」であると判定された場合には、ステップS3115に処理を移し、「n<8」ではないと判定された場合には、ステップS3119に処理を移す。
【0298】
ステップS3115において、誤り検査値生成部610は、「n<4」であるか否かを判定する。このとき、「n<4」であると判定された場合には、ステップS3116に処理を移し、「n<4」ではないと判定された場合には、ステップS3117に処理を移す。
【0299】
ステップS3116において、誤り検査値生成部610は、ビット抽出用マスク値Mg(n−1)、すなわち、直前に使用したビット抽出用マスク値を、左へ2ビットだけシフトして、Mgnを生成して、ステップS3111に戻り、上記処理を繰り返す。
【0300】
一方、「n<4」ではない(ステップS3115においてNO)と判定した場合、ステップS3117において、誤り検査値生成部610は、「n>4」であるか否かを判定する。すなわち、誤り検査値生成部610は、「n=4」であるか否かを判定する。このとき、「n>4」であると判定された場合には、ステップS3118に処理を移し、「n>4」ではないと判定された場合には、ステップS3111に戻り、上記処理を繰り返す。
【0301】
ステップS3118において、誤り検査値生成部610は、ビット抽出用マスク値Mg(n−1)、すなわち、直前に使用したビット抽出用マスク値を、右へ2ビットだけシフトして、Mgnを生成して、ステップS3111に戻り、上記処理を繰り返す。
【0302】
一方、「n<8」ではない(ステップS3114においてNO)と判定された場合、ステップS3119において、誤り検査値生成部610は、抽出したビット情報Dn(0≦n≦7)から検査値Vd´を生成する。具体的には、抽出したビット情報Dn(0≦n≦7)の排他的論理和(XOR)を算出し、これを検査値Vd´とする。
【0303】
すなわち、
[Vd´= D0 XOR D1 XOR D2 XOR D3
XOR D4 XOR D5 XOR D6 XOR D7]
これにより、制御コマンド(Ng−8)〜制御コマンド(Ng−1)までの制御コマンドのそれぞれから抽出されたビット情報から、検査値Vd´が生成される。
【0304】
上記ステップS3111〜ステップS3119における処理により生成された検査値Vd´に基づいて、既に説明した上記ステップS3025〜ステップS3029の処理において、受信した制御コマンド情報から取得した誤り検査値Vdの認証が行われる。
【0305】
以上のように、本変形例1では、抽出するビット情報について、一部のビット列(桁)が同じとなるビット列の選択パターンを用いた場合について説明した。本変形例1のように構成した場合であっても上記実施の形態と同様の効果を得ることができる。
【0306】
また、本変形例1では、1回の送信機会を利用して、「くの字」を形成するビット列でビット情報が抽出される。さらに、ビットパターンの形、またはビットパターンの抽出方法によって、あるビット情報が検査されなかったり、または重複して検査されたりするようにできる。これによって、誤り検査値を解析しようとする不正者を撹乱させることができ、解析の困難化を図ることができる。よって、不正行為検出の確度およびセキュリティ強度を高めることができる。
【0307】
なお、ビット列の選択パターンとしては、一部のビット列から重複してビット情報が抽出される形態であれば、「くの字選択パターン」に限られず、「Vの字」や「ジグザク(Wの字、またはWを横倒しにした形状)」他、であってもよい。
【0308】
なお、上記実施の形態および変形例1では、ビット列の選択パターンが毎回同じ形状となる形態(つまり、毎回「斜め」や「くの字」になる)であったが、これに限られない。例えば、毎回ビット列の選択パターンがランダムに変化するものであってもよい。以下では、同じビット列の選択パターンが続かないものであって、より簡易な形態(変形例2)について説明する。なお、以下の変形例2においても、上記実施の形態または変形例1と同じ符号、ステップについては上記実施の形態または変形例1において説明したものと同じであるものとして、説明を省略する。
【0309】
(変形例2)
図26および図27は、変形例2における主制御部110による制御コマンド送信処理を示すフローチャートである。なお、図13と同じステップ番号(ステップS711〜ステップS714、ステップS722〜727)の処理については、図13で説明した内容と同様であるので説明を省略し、図13と異なるステップ番号(ステップS850〜ステップS868)の処理についてのみ、説明する。また、図28は、本変形例2における制御コマンド情報の形式を説明する図である。
【0310】
ステップS850において、誤り検査値生成部510は、前半フラグがONされているか否かを判定する。この前半フラグとは、ビット抽出用マスク値Mgnにより選択されるビット列が「くの字」の上半分を形成しているか否か(図28参照)を判定するものである。また、前半フラグは、メインRAM110cに設けられる、前半フラグ記憶領域においてON/OFFされるものであり、初期化処理においてONとされるものである。
【0311】
ステップS850において、誤り検査値生成部510は、前半フラグがONされていると判定された場合には、ステップS851に処理を移し、前半フラグがONされていないと判定された場合には、ステップS861に処理を移す。
【0312】
ステップS851において、誤り検査値生成部510は、変数(n)および変数(k)をセットする。具体的には、誤り検査値生成部510は、変数(n)に「0」をセットし、変数(k)に「Ng−8」をセットする。
【0313】
次いで、ステップS852において、誤り検査値生成部510は、当該グループにおける過去に送信された制御コマンドのそれぞれから、ビット情報を抽出するための制御コマンドNgの制御コマンドビット情報Cgkを取得する。
【0314】
続いて、ステップS853において、誤り検査値生成部510は、取得した制御コマンドビット情報Cgkと、ビット抽出用マスク値Mgnとから、ビット情報Dnを抽出する。具体的には、取得した制御コマンドビット情報Cgkとビット抽出用マスク値Mgnとの論理積をビット情報Dnとする(ビット抽出用マスク値Mgnについては、図23および上記ステップS812で説明したものと同様のものとする、図28参照)。
【0315】
続いて、ステップS854において、誤り検査値生成部510は、変数(n)に「1」を加算して新たな(n)として更新する。また、変数(k)にも「1」を加算して新たな変数(k)として更新する。
【0316】
次いで、ステップS855において、誤り検査値生成部510は、「n<4」であるか否かを判定する。このとき、「n<4」であると判定された場合には、ステップS856に処理を移し、「n<4」ではないと判定された場合には、ステップS857に処理を移す。
【0317】
ステップS856において、誤り検査値生成部510は、ビット抽出用マスク値Mg(n−1)、すなわち、直前に使用したビット抽出用マスク値を、左へ2ビットだけシフトして、Mgnを生成して、ステップS852に戻り、上記処理を繰り返す。
【0318】
一方、「n<4」ではない(ステップS855においてNO)と判定された場合、ステップS857において、誤り検査値生成部510は、抽出したビット情報Dn(0≦n≦3)からビット情報Vdを生成する。具体的には、抽出したビット情報Dn(0≦n≦3)の排他的論理和(XOR)を算出し、これを新たなビット情報Vdとする。
【0319】
すなわち、
[Vd= D0 XOR D1 XOR D2 XOR D3]
これにより、制御コマンド(Ng−8)〜制御コマンド(Ng−5)までの制御コマンドから抽出されたビット情報から、ビット情報Vdが生成される。
なお、図28中の点線で囲った部分(制御コマンド1〜4の一部のビットが囲まれた部分)は、N=9の場合に抽出されるビット列を示している。すなわち、「くの字」の上半分を模した形状のビット列からビット情報が抽出されている。
【0320】
続いて、ステップS858において、誤り検査値生成部510は、前半フラグをOFFにして、ステップS722に処理を移す。これにより、次回にビット情報を抽出するときからは、「くの字」の下半分を成すビット列からビット情報が抽出されることとなる。
【0321】
一方、前半フラグがONではない(ステップS850においてNO)と判定された場合、ステップS861において、誤り検査値生成部510は、変数(n)および変数(k)をセットする。具体的には、誤り検査値生成部510は、変数(n)に「4」をセットし、変数(k)に「Ng−5」をセットする。
【0322】
次に、ステップS862において、誤り検査値生成部510は、当該グループの過去に送信された制御コマンドのそれぞれから、ビット情報を抽出するための制御コマンドNgの制御コマンドビット情報Cgkを取得する。
【0323】
続いて、ステップS863において、誤り検査値生成部510は、取得した制御コマンドビット情報Cgkと、ビット抽出用マスク値Mgnとから、ビット情報Dnを抽出する。具体的には、取得した制御コマンドビット情報Cgkとビット抽出用マスク値Mgnとの論理積をビット情報Dnとする。
【0324】
続いて、ステップS864において、誤り検査値生成部510は、変数(n)に「1」を加算して新たな(n)として更新する。また、変数(k)にも「1」を加算して新たな変数(k)として更新する。
【0325】
次いで、ステップS865において、誤り検査値生成部510は、「n<8」であるか否かを判定する。このとき、「n<8」であると判定された場合には、ステップS866に処理を移し、「n<8」ではないと判定された場合には、ステップS867に処理を移す。
【0326】
ステップS866において、誤り検査値生成部510は、ビット抽出用マスク値Mg(n−1)、すなわち、直前に使用したビット抽出用マスク値を、右へ2ビットだけシフトして、Mgnを生成して、ステップS862に戻り、上記処理を繰り返す。
【0327】
一方、「n<8」ではない(ステップS865においてNO)と判定した場合、ステップS867において、誤り検査値生成部510は、抽出したビット情報Dn(4≦n≦7)からビット情報Vdを生成する。具体的には、抽出したビット情報Dn(4≦n≦7)の排他的論理和(XOR)を算出し、これを新たなビット情報Vdとする。
【0328】
すなわち、
[Vd= D4 XOR D5 XOR D6 XOR D7]
これにより、制御コマンド(Ng−5)〜制御コマンド(Ng−2)までの制御コマンドから抽出されたビット情報から、ビット情報Vdが生成される。
なお、図28中の二点鎖線で囲った部分(制御コマンド5〜8の一部のビットが囲まれた部分)は、N=10の場合に抽出されるビット列を示している。すなわち、「くの字」の下半分を模した形状のビット列からビット情報が抽出されている。
【0329】
続いて、ステップS868において、誤り検査値生成部510は、前半フラグをONにする。これにより、次回にビット情報を抽出するときからは、「くの字」の上半分を成すビット列からビット情報が抽出されることとなる。
【0330】
上記ステップS850〜ステップS868における処理により生成されたビット情報Vdは、既に説明した上記ステップS722〜ステップS726の処理を経て、ステップS727において制御コマンド情報として送信される。
【0331】
図29および図30は、本変形例2における中間制御部180による認証処理を示すフローチャートである。なお、図14および図15と同じステップ番号(ステップS3011〜ステップS3016、ステップS3024〜ステップS3033)の処理については、図14および図15で説明した内容と同様であるので説明を省略し、図14および図15と異なるステップ番号(ステップS3210〜ステップS3228)の処理についてのみ、説明する。
【0332】
ステップS3210において、中間制御部180の誤り検査値生成部610は、前半フラグがONされているか否かを判定する。この前半フラグとは、主制御部110の制御コマンド送信処理で用いたものと同様の中間制御部180用のものである。また、この前半フラグは、RAM120cに設けられる、前半フラグ記憶領域においてON/OFFされるものであり、初期化処理においてONとされるものである。
【0333】
ステップS3210において、誤り検査値生成部610は、前半フラグがONされていると判定された場合には、ステップS3211に処理を移し、前半フラグがONされていないと判定された場合には、ステップS3221に処理を移す。
【0334】
ステップS3211において、誤り検査値生成部610は、変数(n)および変数(k)をセットする。具体的には、誤り検査値生成部610は、変数(n)に「0」をセットし、変数(k)に「Ng−8」をセットする。
【0335】
次いで、ステップS3212において、誤り検査値生成部610は、当該グループにおける過去に受信した制御コマンドのそれぞれから、ビット情報を抽出するための制御コマンドNgの制御コマンドビット情報Cgkを取得する。
【0336】
続いて、ステップS3213において、誤り検査値生成部610は、取得した制御コマンドビット情報Cgkと、ビット抽出用マスク値Mgnとから、ビット情報Dnを抽出する。具体的には、取得した制御コマンドビット情報Cgkとビット抽出用マスク値Mgnとの論理積をビット情報Dnとする(ビット抽出用マスク値Mgnについては、図23および上記ステップS853で説明したものと同様のものとする、図28参照)。
【0337】
続いて、ステップS3214において、誤り検査値生成部610は、変数(n)に「1」を加算して新たな(n)として更新する。また、変数(k)にも「1」を加算して新たな変数(k)として更新する。
【0338】
次いで、ステップS3215において、誤り検査値生成部610は、「n<4」であるか否かを判定する。このとき、「n<4」であると判定された場合には、ステップS3216に処理を移し、「n<4」ではないと判定された場合には、ステップS3217に処理を移す。
【0339】
ステップS3216において、誤り検査値生成部610は、ビット抽出用マスク値Mg(n−1)、すなわち、直前に使用したビット抽出用マスク値を、左へ2ビットだけシフトして、Mgnを生成して、ステップS3212に戻り、上記処理を繰り返す。
【0340】
一方、「n<4」ではない(ステップS3215においてNO)と判定された場合、ステップS3217において、誤り検査値生成部610は、抽出したビット情報Dn(0≦n≦3)から検査値Vd´を生成する。具体的には、抽出したビット情報Dn(0≦n≦3)の排他的論理和(XOR)を算出し、これを新たな検査値Vd´とする。
【0341】
すなわち、
[Vd´= D0 XOR D1 XOR D2 XOR D3]
これにより、制御コマンド(Ng−8)〜制御コマンド(Ng−5)までの制御コマンドから抽出されたビット情報から、検査値Vd´が生成される。
【0342】
続いて、ステップS3218において、誤り検査値生成部610は、前半フラグをOFFにして、ステップS3024に処理を移す。これにより、次回にビット情報を抽出するときからは、「くの字」の下半分を成すビット列からビット情報が抽出されることとなる。
【0343】
一方、前半フラグがONではない(ステップS3210においてNO)と判定された場合、ステップS3221において、誤り検査値生成部610は、変数(n)および変数(k)をセットする。具体的には、誤り検査値生成部610は、変数(n)に「4」をセットし、変数(k)に「Ng−5」をセットする。
【0344】
次に、ステップS3222において、誤り検査値生成部610は、当該グループの過去に受信した制御コマンドのそれぞれから、ビット情報を抽出するための制御コマンドNgの制御コマンドビット情報Cgkを取得する。
【0345】
続いて、ステップS3223において、誤り検査値生成部610は、取得した制御コマンドビット情報Cgkと、ビット抽出用マスク値Mgnとから、ビット情報Dnを抽出する。具体的には、取得した制御コマンドビット情報Cgkとビット抽出用マスク値Mgnとの論理積をビット情報Dnとする。
【0346】
続いて、ステップS3224において、誤り検査値生成部610は、変数(n)に「1」を加算して新たな(n)として更新する。また、変数(k)にも「1」を加算して新たな変数(k)として更新する。
【0347】
次いで、ステップS3225において、誤り検査値生成部610は、「n<8」であるか否かを判定する。このとき、「n<8」であると判定された場合には、ステップS3226に処理を移し、「n<8」ではないと判定された場合には、ステップS3227に処理を移す。
【0348】
ステップS3226において、誤り検査値生成部610は、ビット抽出用マスク値Mg(n−1)、すなわち、直前に使用したビット抽出用マスク値を、右へ2ビットだけシフトして、Mgnを生成して、ステップS3222に戻り、上記処理を繰り返す。
【0349】
一方、「n<8」ではない(ステップS3225においてNO)と判定した場合、ステップS3227において、誤り検査値生成部610は、抽出したビット情報Dn(4≦n≦7)から検査値Vd´を生成する。具体的には、抽出したビット情報Dn(4≦n≦7)の排他的論理和(XOR)を算出し、これを新たなビット情報Vd´とする。
【0350】
すなわち、
[Vd´= D4 XOR D5 XOR D6 XOR D7]
これにより、制御コマンド(Ng−5)〜制御コマンド(Ng−2)までの制御コマンドから抽出されたビット情報から、ビット情報Vd´が生成される。
【0351】
続いて、ステップS3228において、誤り検査値生成部610は、前半フラグをONにする。これにより、次回にビット情報を抽出するときからは、「くの字」の上半分を成すビット列からビット情報が抽出されることとなる。
【0352】
さらに、グループ情報によって、誤り検査値の生成方法を切り替えるようにしても良い。例えば、主制御部110の制御コマンド送信処理において、上記ステップS714の処理の後で、グループ情報を判定し、グループAであれば、上記ステップS715〜ステップS721の処理を行い、グループBであれば、上記ステップS850〜ステップS868の処理を行うようにする。また、中間制御部180のメイン処理において、上記ステップS3016の処理の後で、グループ情報を判定し、グループAであれば、上記ステップS3017〜ステップS3023の処理を行い、グループBであれば、上記ステップS3210〜ステップS3228の処理を行うようにする。これにより、グループによって異なる方法で誤り検査値が生成されるので、解析の困難化を図ることができる。したがって、不正行為検出の確度およびセキュリティ強度を高めることができる。
【0353】
以上のように、本変形例2では、グループごとに抽出するビット情報について、同じビット列の選択パターンが続かない場合について説明した。本変形例2のように構成した場合であっても上記実施の形態と同様の効果を得ることができる。
【0354】
また、本変形例2では、あるときには「くの字の上半分」でビット情報が抽出されたうえで誤り検査値が生成され、また別のあるときには「くの字の下半分」でビット情報が抽出されたうえで誤り検査値が生成されている。すなわち、2回の送信機会を利用して、「くの字」を形成するビット列でビット情報が抽出される。これにより、送信した制御コマンドの各ビットが複数の異なるタイミングで検査されることになる。また、誤り検査値は生成する度にランダムに変動する値になるため、誤り検査値の不正解析を困難化することができる。さらに、ビットパターンの形、またはビットパターンの抽出方法によって、あるビット情報が検査されなかったり、または重複して検査されたりするようにできる。これによって、誤り検査値を解析しようとする不正者を撹乱させることができ、解析の困難化を図ることができる。よって、不正行為検出の確度およびセキュリティ強度を高めることができる。
【0355】
また、上記実施の形態では、中間制御部180は、認証成功の場合も認証不成功の場合も、認証結果を認証結果データとして制御コマンドに付加して演出制御部120へ送信するとしたが、本発明はこれに限定されない。例えば、中間制御部180は、認証不成功の場合のみ認証不成功を示す認証結果データ、あるいは認証が不成功であることを報せる認証不成功信号を演出制御部120へ送信するようにしてもよい。演出制御部120は、認証結果データまたは認証不成功信号を受信したか否かを判断し、受信した場合に報知信号を出力するように構成すればよい。
【0356】
また、上記実施の形態、上記変形例1および上記変形例2では、主制御部110は、メインCPU110a、メインROM110bおよびメインRAM110cを用いてソフトウェアによって認証機能を実現していたが、これに限定されず、誤り検査値を生成するための生成回路や誤り検査を行う検査回路等を設け、ハードウェアによって認証機能を実現してもよい。
【0357】
また、中間制御部180は、CPU180a、ROM180bおよびRAM180cを用いてソフトウェアによって認証機能を実現していたが、これに限定されず、誤り検査値を生成するための生成回路や誤り検査を行う検査回路等を設け、ハードウェアによって認証機能を実現してもよい。
【0358】
また、上記実施の形態、変形例1および変形例2の構成を適宜組み合わせてもよい。すなわち、ビット情報を抽出するに当たり、「斜め選択パターン」で誤り検査値を生成したら、次回は「くの字選択パターン」で誤り検査値を生成する、というように、「斜め選択パターン」と「くの字選択パターン」とが交互(または所定の周期等で)入れ替わるようにしてもよい。
【0359】
また、上記実施の形態、変形例1および変形例2では、本発明をパチンコ遊技機に適用する例を示したが、これに限定されず、本発明は、雀球遊技機、アレンジボール等のパチンコ遊技機以外の弾球遊技機、スロットマシン等の回胴式遊技機などの他の遊技機にも適用することができる。これらの遊技機においても、上記実施の形態、変形例1および変形例2と同様に構成することにより、上記実施の形態、変形例1および変形例2と同様の効果を得ることができる。また、上記実施の形態、変形例1および変形例2は、その目的および構成等に特に矛盾や問題がない限り、互いの技術を流用することができる。
【0360】
また、上述した本発明は、過去に送信した制御コマンドを少なくとも用いて出力した誤り検査値を今回送信する制御コマンドに付加して送信するという方法を用いる認証方法を実現する基本形であり、よりセキュリティ強度の高い認証方法や誤り検査値の生成方法を実現する形態へと発展させることができるものである。
【0361】
また、上記実施の形態、上記変形例1および上記変形例2では、本発明を遊技機に適用する例を示したが、これに限定されず、本発明は、遊技機のような複数の制御部を備え、これら制御部間のデータ伝送について認証処理を実行する電子機器およびその認証方法にも適用することができる。これらの電子機器およびその認証方法においても、本実施の形態と同様に構成することにより、上記実施の形態と同様の効果を得ることができる。また、上記実施の形態は、その目的および構成等に特に矛盾や問題がない限り、互いの技術を流用することができる。
【符号の説明】
【0362】
1 遊技機
110 主制御部
110a メインCPU
110b メインROM
110c メインRAM
120 演出制御部
120a サブCPU
120b サブROM
120c サブRAM
130 払出制御部
140 ランプ制御部
150 画像制御部
160 発射制御部
170 電源部
180 中間制御部
180a CPU
180b ROM
180c RAM
500 制御コマンド出力部
510、610 誤り検査値生成部
520、620 識別制御部
530、630 記憶部
540、640 誤り検査値演算部
550、660 付加部
560、670 送信部
600 受信部
650 誤り検査部

【特許請求の範囲】
【請求項1】
制御コマンドを出力する主制御部と、前記制御コマンドに基づく処理を行う周辺部と、前記主制御部と前記周辺部との間に設けられた中間制御部と、を備える遊技機であって、
前記主制御部は、
前記制御コマンドを出力するコマンド出力手段と、
前記コマンド出力手段によって出力された制御コマンドの正当性を検査する誤り検査値を生成する第1検査値生成手段と、
前記第1検査値生成手段によって生成された前記誤り検査値を、前記コマンド出力手段によって出力された前記制御コマンドに付加した制御コマンド情報を生成する検査値付加手段と、
前記検査値付加手段によって生成された前記制御コマンド情報を前記中間制御部に送信する第1送信手段と、
を備え、
前記中間制御部は、
前記第1送信手段によって送信された制御コマンド情報を受信し、前記制御コマンドと前記誤り検査値とを分離する受信手段と、
前記受信手段によって受信された制御コマンドに基づいて誤り検査値を生成する第2検査値生成手段と、
前記受信手段によって受信された誤り検査値と、前記第2検査値生成手段によって生成された誤り検査値とを用いて、受信された前記制御コマンドの正当性の検査を行い、認証結果を出力する検査手段と、
前記受信手段によって受信された前記制御コマンドに、前記検査手段により出力された前記認証結果を付加し、結果付き制御コマンド情報を生成する認証結果付加手段と、
前記認証結果付加手段によって生成された結果付き制御コマンド情報を前記周辺部に送信する第2送信手段と、
を備え、
前記周辺部は、
前記第2送信手段により送信された前記結果付き制御コマンド情報に基づいた処理を行う周辺部制御手段を備え、
前記第1検査値生成手段は、
前記コマンド出力手段によって今回出力された制御コマンドが、予め決められた複数のグループのうちのいずれのグループに属するかを識別する第1識別手段と、
前記第1識別手段に識別された識別情報に基づいて、前記グループごとに前記制御コマンドを記憶する第1記憶手段と、
前記識別情報に基づいて、所定の前記グループに対応して記憶された過去に出力された制御コマンドを複数選択し、該選択した制御コマンドを構成するビット情報の一部をそれぞれ抽出し、該抽出したビット情報に基づいて前記誤り検査値を生成する第1演算手段と、
を有することを特徴とする遊技機。
【請求項2】
前記第2検査値生成手段は、
前記受信手段に受信された前記制御コマンドが、いずれの前記グループに属するかを識別する第2識別手段と、
前記第2識別手段に識別された識別情報に基づいて、前記グループごとに前記制御コマンドを記憶する第2記憶手段と、
前記識別情報に基づいて、所定の前記グループに対応して記憶された過去に受信された制御コマンドを複数選択し、該選択した制御コマンドを構成するビット情報の一部をそれぞれ抽出し、該抽出したビット情報に基づいて前記誤り検査値を生成する第2演算手段と、
を有することを特徴とする請求項1に記載の遊技機。
【請求項3】
前記第1記憶手段は、前記グループごとに前記コマンド出力手段によりN個前(Nは自然数)までに出力された複数の制御コマンドを記憶し、
前記第1演算手段は、前記第1記憶手段に記憶された前記識別情報に基づいて決定した所定の前記グループに対応する前記N個の制御コマンドのそれぞれから前記制御コマンドを構成するビット情報を抽出し、該抽出したビット情報に基づいて前記誤り検査値を生成し、
前記第2記憶手段は、前記グループごとに前記第1送信手段によりN個前までに送信された複数の制御コマンドを記憶し、
前記第2演算手段は、前記第2記憶手段に記憶された前記識別情報に基づいて決定した所定の前記グループに対応する前記N個の制御コマンドのそれぞれから前記制御コマンドを構成するビット情報を抽出し、該抽出したビット情報に基づいて前記誤り検査値を生成することを特徴とする請求項2に記載の遊技機。
【請求項4】
前記第1演算手段は、
前記所定のグループに対応する複数個の制御コマンドからビット情報を抽出する場合、それぞれの制御コマンドから抽出し、
前記第2演算手段は、
前記所定のグループに対応する複数個の制御コマンドからビット情報を抽出する場合、それぞれの制御コマンドから抽出するビット列を重複させずにビット情報を抽出することを特徴とする請求項3に記載の遊技機。
【請求項5】
前記第1演算手段は、
前記所定のグループに対応する複数個の制御コマンドからビット情報を抽出する場合、それぞれの制御コマンドから抽出するビット列のうち、少なくとも一部のビット列からは重複してビット情報を抽出し、
前記第2演算手段は、
前記所定のグループに対応する複数個の制御コマンドからビット情報を抽出する場合、それぞれの制御コマンドから抽出するビット列のうち、少なくとも一部のビット列からは重複してビット情報を抽出することを特徴とする請求項3に記載の遊技機。
【請求項6】
前記第1演算手段は、
複数個の制御コマンドからビット情報を抽出するビット列の選択パターンが異なる複数のビット列選択パターンを有し、
所定の条件に基づいて前記ビット列選択パターンから所定の選択パターンを選択し、当該選択パターンに基づいて前記ビット情報を抽出して前記誤り検査値を生成し、
前記第2演算手段は、
複数個の制御コマンドからビット情報を抽出するビット列の選択パターンが異なる複数のビット列選択パターンを有し、
所定の条件に基づいて前記ビット列選択パターンから所定の選択パターンを選択し、当該選択パターンに基づいて前記ビット情報を抽出して前記誤り検査値を生成することを特徴とする請求項3に記載の遊技機。
【請求項7】
前記第1演算手段は、
前記グループごとに前記ビット列選択パターンを設定し、
前記第1識別手段に識別されたグループの識別情報により決定される前記選択パターンに基づいて、前記ビット情報を抽出して前記誤り検査値を生成し、
前記第2演算手段は、
前記グループごとに前記ビット列選択パターンを設定し、
前記第2識別手段に識別されたグループの識別情報により決定される前記選択パターンに基づいて、前記ビット情報を抽出して前記誤り検査値を生成することを特徴とする請求項6に記載の遊技機。
【請求項8】
前記第1識別手段は、前記出力された制御コマンドに遊技モードを変更する情報が含まれている場合には変更された前記遊技モードを記憶するとともに、前記今回出力された制御コマンドを、前記遊技モードに応じて前記いずれのグループに属するかを識別し、
前記第2識別手段は、前記受信された制御コマンドに遊技モードを変更する情報が含まれている場合には変更された前記遊技モードを記憶するとともに、前記今回受信された制御コマンドを、前記遊技モードに応じて前記いずれのグループに属するかを識別することを特徴とする請求項2から請求項7のいずれか1項に記載の遊技機。
【請求項9】
前記第1記憶手段は、前記制御コマンドに前記誤り検査値が付加された前記制御コマンド情報を記憶し、
前記第1演算手段は、前記制御コマンド情報を構成するビット情報の一部をそれぞれ抽出し、該抽出したビット情報に基づいて前記誤り検査値を生成し、
前記第2記憶手段は、前記第1送信手段により所定の過去に送信された前記制御コマンド情報を記憶し、
前記第2演算手段は、前記制御コマンド情報を構成するビット情報の一部をそれぞれ抽出し、該抽出したビット情報に基づいて前記誤り検査値を生成することを特徴とする請求項2から請求項8のいずれか1項に記載の遊技機。
【請求項10】
制御コマンドを出力する主制御部と、前記制御コマンドに基づく処理を行う周辺部と、前記主制御部と前記周辺部との間に設けられた中間制御部とを備える電子機器において、前記主制御部と前記中間制御部との間で行われるデータ伝送の正当性を認証する電子機器の認証方法であって、
前記主制御部は、
前記制御コマンドを出力するコマンド出力工程と、
前記コマンド出力工程によって出力された制御コマンドの正当性を検査する誤り検査値を生成する第1検査値生成工程と、
前記第1検査値生成工程によって生成された前記誤り検査値を、前記コマンド出力工程により出力された前記制御コマンドに付加した制御コマンド情報を生成する検査値付加工程と、
前記検査値付加工程によって生成された前記制御コマンド情報を前記中間制御部に送信する第1送信工程と、
を実行し、
前記中間制御部は、
前記第1送信工程によって送信された制御コマンド情報を受信し、前記制御コマンドと前記誤り検査値とを分離する受信工程と、
前記受信工程によって受信された制御コマンドに基づいて誤り検査値を生成する第2検査値生成工程と、
前記受信工程によって受信された誤り検査値と、前記第2検査値生成工程によって生成された誤り検査値とを用いて、受信された前記制御コマンドの正当性の検査を行い、認証結果を出力する検査工程と、
前記受信工程によって受信された前記制御コマンドに、前記検査工程により出力された前記認証結果を付加し、結果付き制御コマンド情報を生成する認証結果付加工程と、
前記認証結果付加工程により生成された結果付き制御コマンド情報を前記周辺部に送信する第2送信工程と、
を実行し、
前記周辺部は、
前記第2送信工程によって送信された前記結果付き制御コマンド情報に基づいた処理を行う周辺部制御工程を実行し、
前記主制御部は、
前記第1検査値生成工程において、
前記コマンド出力工程によって今回出力された制御コマンドが、予め決められた複数のグループのうちのいずれのグループに属するかを識別する第1識別工程と、
前記第1識別工程で識別された識別情報に基づいて、前記グループごとに前記制御コマンドを記憶する第1記憶工程と、
前記識別情報に基づいて、所定の前記グループに対応して記憶された過去に出力された制御コマンドを複数選択し、該選択した制御コマンドを構成するビット情報の一部をそれぞれ抽出し、該抽出したビット情報に基づいて前記誤り検査値を生成する第1演算工程と、
を実行することを特徴とする電子機器の認証方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図29】
image rotate

【図30】
image rotate

【図6】
image rotate

【図23】
image rotate

【図28】
image rotate


【公開番号】特開2013−111323(P2013−111323A)
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願番号】特願2011−261284(P2011−261284)
【出願日】平成23年11月30日(2011.11.30)
【出願人】(000161806)京楽産業.株式会社 (4,820)
【Fターム(参考)】