説明

遊技機

【課題】簡易な手段によりセキュリティ強度を向上させると共に主制御部の処理負荷を軽減する。
【解決手段】主制御部110と周辺部300を備えた遊技機1であって、主制御部110は、誤り検査値を生成しコマンドに付加して周辺部300へ送信する送信部500を備える。送信部500は誤り検査値の付加手順を複数備える。メインCPU110aは、ブート処理時に複数の付加手順から特定の手順を送信部500へ設定する。送信部500は、過去に生成されたコマンドの誤り検査値を生成し、設定された手順で付加する。また、送信部500は、所定のコマンドの送信時には手順を変更する。周辺部300は検証用の誤り検査値を格納しておき、受信したコマンドの正当性を検査し、検査結果に応じた処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パチンコ店等の遊技店に設置されるパチンコ遊技機、雀球遊技機、アレンジボール等の弾球遊技機、スロットマシン等の回胴式遊技機などの遊技機に関する。
【背景技術】
【0002】
遊技機に対し行われる、メダルや遊技球など(以下、「遊技媒体」という)を遊技内容とは無関係に強制的に払い出させる不正行為のうち、遊技進行に伴う基本動作を制御する主制御部が搭載された主制御基板や、主制御部からの制御命令情報(以下、「制御コマンド」という)に基づき演出処理等を実行する周辺部が搭載された周辺基板に関するものとして、例えば以下に示すものがある。
(1)正規な主制御基板と不正な主制御基板との交換
(2)主制御基板に搭載されたCPUが実行する正規なプログラムが記憶されたROMと上記プログラムを改ざんした不正なプログラムが記憶されたROMとの交換
(3)主制御基板と周辺基板との間に不正な基板(なりすまし基板)を設け、かつ上記(2)のROMの交換
【0003】
このような不正行為を防止するため、従来の遊技機には、次のようなものがあった。例えば、特許文献1に記載の遊技機では、主制御基板は、制御コマンドを生成してサブ制御基板に送信する第1送信手段と、第1送信手段が所定期間内に送信した制御コマンドのチェックサムを状態監視コマンドとして所定のタイミングで送信する第2送信手段とを備えている。また、サブ制御基板が、所定期間内に受信した制御コマンドのチェックサムと、所定のタイミングで受信した状態監視コマンドとを比較することで、所定期間内に送信された制御コマンドの正当性を検証している。すなわち、特許文献1に記載の遊技機は、制御コマンドの正当性を検証するための状態監視コマンドを所定のタイミングで送信することで、上記不正行為の防止を図っている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−18095号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の遊技機では、所定のタイミングで状態監視コマンドを単独で送信する処理を行っている。状態監視コマンドは、上述のように所定期間内に送信した制御コマンドのチェックサムなので、状態監視コマンドと通常の制御コマンドとは異なるデータ形式あるいはデータ量の情報である。したがって、特許文献1に記載の遊技機では、不正行為を働こうとする者(以下、「不正者」という)は状態監視コマンドの送信タイミングを容易に知ることができ、不正行為検出のための検査タイミングを容易に知ることができる。そして、状態監視コマンドの送信タイミングを知ることができる不正者が、状態監視コマンドを窃取して内容を解析するおそれがあった。
【0006】
また、特許文献1に記載の遊技機では、制御コマンドにそのチェックサムを付加して送信している。制御コマンドにそのチェックサムを付加して送信することにより、通信エラーチェックを行うことは一般的に行われることである。しかしながら、所定期間内に送信した制御コマンドのチェックサムを状態監視コマンドとしている特許文献1に記載の遊技機では、制御コマンドにそのチェックサムを付加していることにより、不正者が制御コマンドを窃取することで状態監視コマンドの内容を解析容易にしている。具体的には、不正者が、状態監視コマンドの送信タイミングを容易に知ることができるのは上述したとおりである。状態監視コマンドの送信タイミングを知った不正者が、所定期間内の制御コマンドとそのチェックサムを取得して比較することで、状態監視コマンドの内容を容易に解析することができるというおそれがあった。
【0007】
また、特許文献1に記載の遊技機では、状態監視コマンドを送信するという、通常の処理とは異なる処理を行っている。これにより、処理が複雑となるうえ、所定期間内に送信する全てのチェックサムを記憶しておく必要があり、主制御基板の処理負荷が増大するという問題があった。遊技機においては、「風俗営業等の規制及び業務の適正化等に関する法律(風営法)」の規制により主制御基板のROMやRAMの容量に制限があり、主制御基板のリソースが限られている。一方で、遊技機メーカーには、遊技機の演出に係るプログラムに、限られた容量の多くを割り振りたいという要望がある。このため、遊技機にセキュリティに関する機能を追加することで、主制御基板の処理負荷が増大したり、プログラムのコードサイズが増大したりする問題は看過できないものとなっている。
【0008】
また、セキュリティに関する機能をハードウェアで実現しようとする場合、処理速度の低下やコードサイズの増大は抑制できても、ハードウェアの特性上、追加したセキュリティ機能の具体的な処理内容は固定化し、不正に解析され易くなるのは勿論、仮に不正に解析されると、そのセキュリティ機能を追加した遊技機は全て不正行為を防止できない。また、処理内容が固定化すると、処理内容を遊技機メーカー毎や機種毎に異ならせることができず、セキュリティ機能は多様性に乏しいものとなってしまう。一方、処理内容を遊技機メーカー毎や機種毎に異ならせたものを、都度、製造することは膨大な負担を招き現実的ではない。したがって、多様性に富んだ実効性のあるセキュリティ機能を比較的簡易に追加したいという要求に応えることができない。
【0009】
本発明は、上記事情に鑑みてなされたものであり、従来ない簡易な手段により上記不正行為を防止してセキュリティ強度を向上させることができ、かつ処理負荷やコードサイズの増大を抑制しながら汎用性の高いセキュリティ機能を備えた遊技機を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために本発明は、所定の遊技情報を記憶する遊技情報記憶領域、及び遊技機の起動の際にアクセス可能であって遊技機の初期設定情報を記憶する初期設定情報記憶領域を有する記憶手段(メインROM110b)と、遊技情報に応じた所定の演算を行って制御情報を生成すると共に、生成した制御情報を送信せしめるための送信指示を出力する演算処理手段(メインCPU110a)と、前記送信指示に対応する制御情報より過去に生成された複数の制御情報のそれぞれに対応する複数の誤り検査値を生成する第1生成手段(生成回路521)と、前記送信指示に対応する制御情報へ付加すべき誤り検査値を、前記第1生成手段にて生成された前記複数の誤り検査値の中から、予め定められたプロトコルに従って決定する決定手段(制御部510)と、前記決定手段にて決定された誤り検査値を前記送信指示に対応する制御情報へ付加して送信する送信手段(送信バッファ530、送信回路540等)と、を含む主制御部(主制御部110)と、前記第1生成手段にて生成された誤り検査値に対応する検証用の誤り検査値を生成する第2生成手段(検査値生成部620)と、前記送信手段にて送信された誤り検査値と前記第2生成手段にて生成された誤り検査値とを比較し、前記送信手段にて送信された制御情報の正当性の検査を行う検査手段(検査部610)と、前記送信手段にて送信された制御情報に基づいた所定の処理を行う情報処理手段(周辺部300のCPU等)と、を含む周辺制御部(周辺部300)と、を備え、前記決定手段は、前記送信指示に対応する制御情報に基づいて前記プロトコルを変更することを特徴とする。
【発明の効果】
【0011】
本発明によれば、セキュリティ機能として主制御部に対する認証機能を追加すべく、主制御部が備える誤り検査値生成機能及び付加機能をハードウェアで構成している。また、本発明では、当該付加機能を複数種類備えるとともに、その種類の選択を、遊技中に関知できないブート処理での初期値設定時に行っている。また、選択された当該付加機能の具体的な態様として、誤り検査値を生成・付加する送信部は、送信する制御コマンドに対して、当該制御コマンドより過去に生成された制御コマンドから生成した誤り検査値を付加し、誤り検査値付きの制御コマンドを送信する。このとき、送信部は、送信する制御コマンドの種別に応じて、付加すべき誤り検査値を変更する。そして、送信部は、誤り検査値の生成および付加処理をメインCPUからの指示によらず自動的に行い、誤り検査値付きの制御コマンドを演出制御部へ送信している。
このような従来にない簡易な方法を適用することにより、制御コマンドとそれに付加された誤り検査値の関係を不正者が解析することを困難にし、簡易な方法で遊技機のセキュリティ強度を向上することができる。また、セキュリティ機能の追加に伴って増大する主制御部のCPUの処理負荷やコードサイズを最大限抑制することができるとともに、多様性に富んだ実効性のあるセキュリティ機能を比較的簡易に追加することができ、汎用性の高いセキュリティ機能を提供することができる。
【図面の簡単な説明】
【0012】
【図1】本発明の実施形態に係る遊技機の外観構成を示す正面図である。
【図2】本発明の実施形態に係る遊技機のガラス枠を開放させた状態の外観構成を示す斜視図である。
【図3】本発明の実施形態に係る遊技機の裏面側の外観構成を示す斜視図である。
【図4】本発明の実施形態に係る遊技機の内部構成を示すブロック図である。
【図5】本発明の実施形態に係る遊技機を構成する主制御部の認証処理に関する構成を示すブロック図である。
【図6】本発明の実施形態に係る遊技機を構成する主制御部を構成するメインROMおよびブートROMのメモリマップを説明するための概略図である。
【図7】本発明の実施形態に係る遊技機を構成する主制御部が出力する制御コマンドへの誤り検査値の付加手順を説明するための概略図である。
【図8】本発明の実施形態に係る遊技機を構成する演出制御部の認証処理に関する構成を示すブロック図である。
【図9】本発明の実施形態に係る遊技機を構成する主制御部から演出制御部へ送信される制御コマンドの種別を示す図である。
【図10】本発明の実施形態に係る遊技機を構成する主制御部によるメイン処理におけるフローチャートを示す図である。
【図11】本発明の実施形態に係る遊技機を構成する主制御部による割込処理におけるフローチャートを示す図である。
【図12】本発明の実施形態に係る遊技機を構成する主制御部による特図特電制御処理におけるフローチャートを示す図である。
【図13】本発明の実施形態に係る遊技機を構成する主制御部による特別図柄記憶判定処理におけるフローチャートを示す図である。
【図14】本発明の実施形態に係る遊技機を構成する主制御部による起動時のブート処理におけるフローチャートを示す図である。
【図15】本発明の実施形態に係る遊技機を構成する主制御部によるコマンド送信処理におけるフローチャートを示す図である。
【図16】本発明の実施形態に係る遊技機を構成する演出制御部によるメイン処理におけるフローチャートを示す図である。
【図17】本発明の実施形態に係る遊技機を構成する演出制御部による割込処理におけるフローチャートを示す図である。
【図18】本発明の実施形態に係る遊技機を構成する演出制御部によるコマンド解析処理1におけるフローチャートを示す図である。
【図19】本発明の実施形態に係る遊技機を構成する演出制御部によるコマンド解析処理2におけるフローチャートを示す図である。
【図20】本発明の実施形態に係る遊技機を構成する演出制御部による誤り検査処理におけるフローチャートを示す図である。
【図21】本発明の実施形態に係る遊技機を構成する送信部の構成における他の実施例を示すブロック図である。
【図22】本発明の実施形態に係る遊技機を構成する判定回路および生成パラメータの構成における他の実施例を示すブロック図である。
【発明を実施するための形態】
【0013】
以下、本発明を実施するための形態について、図面を参照しながら説明する。具体的には、本発明の実施形態に係る遊技機の1つであるパチンコ遊技機1(以下、「遊技機1」という)について説明する。
【0014】
[遊技機の構成]
以下に、本発明の一実施形態に係る遊技機1の構成について説明する。
図1は、本実施形態に係る遊技機1の外観構成を示す正面図である。図2は、本実施形態に係る遊技機1のガラス枠を開放させた状態の外観構成を示す斜視図である。図3は、本実施形態に係る遊技機1の裏面側の外観構成を示す斜視図である。
【0015】
遊技機1は、遊技店の島設備に取り付けられる外枠60と、その外枠60と回動可能に支持されたガラス枠50とが備えられている(図1、図2参照)。また、外枠60には、遊技球200が流下する遊技領域6が形成された遊技盤2が設けられている。ガラス枠50には、回動操作されることにより遊技領域6に向けて遊技球を発射させる操作ハンドル3と、スピーカからなる音声出力装置32と、複数のランプを有する演出用照明装置34と、押圧操作により演出態様を変更させるための演出ボタン35とが設けられている。
【0016】
さらに、ガラス枠50には、複数の遊技球200を貯留する受け皿40が設けられており、この受け皿40は、操作ハンドル3の方向側に遊技球200が流下するように下りの傾斜を有している(図2参照)。この受け皿40の下りの傾斜の端部には、遊技球を受け入れる図示しない受入口が設けられており、この受入口に受け入れられた遊技球は、玉送りソレノイド4bが駆動することにより、ガラス枠50の裏面に設けられた玉送り開口部41へ1個ずつ送り出される。そして、玉送り開口部41へ送り出された遊技球は、打出部材4cの方向に向けて下り傾斜を有している発射レール42により、発射レール42の下り傾斜の端部に誘導される。発射レール42の下り傾斜の端部の上方には、遊技球を停留させるストッパー43が設けられており、玉送り開口部41から送り出された遊技球200は、発射レール42の下り傾斜の端部で1個の遊技球が停留されることになる(図2参照)。
【0017】
そして、遊技者が操作ハンドル3を回動させると、操作ハンドル3に直結している発射ボリューム3b(図4参照)も回動し、発射ボリューム3bにより遊技球の発射強度が調整され、調整された発射強度で発射用ソレノイド4a(図4参照)に直結された打出部材4cが回転する。この打出部材4cが回転することで、打出部材4cにより発射レール42の下り傾斜の端部に貯留されている遊技球200が打ち出され、遊技球が遊技領域6に発射されることとなる。
【0018】
上記のようにして発射された遊技球は、発射レール42からレール5a、5b間を上昇して玉戻り防止片5cを超えると、遊技領域6に到達し、その後遊技領域6内を落下する。このとき、遊技領域6に設けられた複数の釘や風車によって、遊技球は予測不能に落下することとなる。
【0019】
また、上記遊技領域6には、複数の一般入賞口12が設けられている。これら各一般入賞口12には、一般入賞口検出スイッチ12a(図4参照)が設けられており、この一般入賞口検出スイッチ12aが遊技球の入賞を検出すると、所定の賞球(例えば10個の遊技球)が払い出される。
【0020】
また、上記遊技領域6の中央下側の領域には、遊技球が入球可能な始動領域を構成する第1始動口14および第2始動口15と、遊技球が入球可能な第2大入賞口17とが設けられている。
【0021】
この第2始動口15は、一対の可動片15bを有しており、これら一対の可動片15bが閉状態に維持される態様(以下、「第1の態様」という)と、一対の可動片15bが開状態となる態様(以下、「第2の態様」という)とに可動制御される。なお、第2始動口15が上記第1の態様に制御されているときには、当該第2始動口15の真上に位置する第2大入賞口17の入賞部材が障害物となって、遊技球の受入れを不可能としている。一方で、第2始動口15が上記第2の態様に制御されているときには、上記一対の可動片15bが受け皿として機能し、第2始動口15への遊技球の入賞が容易となる。つまり、第2始動口15は、第1の態様にあるときには遊技球の入賞機会がなく、第2の態様にあるときには遊技球の入賞機会が増すこととなる。
【0022】
ここで、第1始動口14には遊技球の入球を検出する第1始動口検出スイッチ14a(図4参照)が設けられ、第2始動口15には遊技球の入球を検出する第2始動口検出スイッチ15a(図4参照)が設けられている。そして、第1始動口検出スイッチ14aまたは第2始動口検出スイッチ15aが遊技球の入球を検出すると、特別図柄判定用乱数値等を取得し、後述する大当たり遊技を実行する権利獲得の抽選(以下、「大当たりの抽選」という)が行われる。また、第1始動口検出スイッチ14aまたは第2始動口検出スイッチ15aが遊技球の入球を検出した場合にも、所定の賞球(例えば3個の遊技球)が払い出される。
【0023】
また、第2大入賞口17は、遊技盤2に形成された開口部から構成されている。この第2大入賞口17の下部には、遊技盤面側からガラス板52側に突出可能な第2大入賞口開閉扉17bを有しており、この第2大入賞口開閉扉17bが遊技盤面側に突出する開放状態と、遊技盤面に埋没する閉鎖状態とに可動制御される。そして、第2大入賞口開閉扉17bが遊技盤面に突出していると、遊技球を第2大入賞口17内に導く受け皿として機能し、遊技球が第2大入賞口17に入球可能となる。この第2大入賞口17には第2大入賞口検出スイッチ17a(図4参照)が設けられており、この第2大入賞口検出スイッチ17aが遊技球の入球を検出すると、予め設定された賞球(例えば15個の遊技球)が払い出される。
【0024】
さらに、上記遊技領域6の右側の領域には、遊技球が通過可能な普通領域を構成する普通図柄ゲート13と、遊技球が入球可能な第1大入賞口16とが設けられている。
このため、操作ハンドル3を大きく回動させ、強い力で打ち出された遊技球でないと、普通図柄ゲート13と第1大入賞口16とには遊技球が、通過または入賞しないように構成されている。
【0025】
この普通図柄ゲート13には、遊技球の通過を検出するゲート検出スイッチ13a(図4参照)が設けられており、このゲート検出スイッチ13aが遊技球の通過を検出すると、普通図柄判定用乱数値を取得し、後述する「普通図柄の抽選」が行われる。
【0026】
第1大入賞口16は、通常は第1大入賞口開閉扉16bによって閉状態に維持されており、遊技球の入球を不可能としている。これに対して、後述する特別遊技が開始されると、第1大入賞口開閉扉16bが開放されるとともに、この第1大入賞口開閉扉16bが遊技球を第1大入賞口16内に導く受け皿として機能し、遊技球が第1大入賞口16に入球可能となる。第1大入賞口16には第1大入賞口検出スイッチ16a(図4参照)が設けられており、この第1大入賞口検出スイッチ16aが遊技球の入球を検出すると、予め設定された賞球(例えば15個の遊技球)が払い出される。
【0027】
さらには、遊技領域6の最下部であって遊技領域6の最下部の領域には、一般入賞口12、第1始動口14、第2始動口15、第1大入賞口16および第2大入賞口17のいずれにも入球しなかった遊技球を排出するためのアウト口11が設けられている。
【0028】
また、遊技領域6の中央には、遊技球の流下に影響を与える飾り部材7が設けられている。この飾り部材7の略中央部分には、液晶表示装置31が設けられており、この液晶表示装置31の上方には、ベルトの形をした演出用駆動装置33が設けられている。
なお、本実施形態においては、液晶表示装置31を液晶表示器として用いているが、有機ELディスプレイを用いてもよいし、プロジェクター、円環状の構造物からなるリール、いわゆる7セグメントLED、ドットマトリクス等の表示装置等を用いてもよい。
【0029】
この液晶表示装置31は、遊技が行われていない待機中に画像を表示したり、遊技の進行に応じた画像を表示したりする。なかでも、後述する大当たりの抽選結果を報知するための3個の演出図柄36が表示され、特定の演出図柄36の組合せ(例えば、777等)が停止表示されることにより、大当たりの抽選結果として大当たりが報知される。
より具体的には、第1始動口14または第2始動口15に遊技球が入球したときには、3個の演出図柄36をそれぞれスクロール表示するとともに、所定時間経過後に当該スクロールを停止させて、演出図柄36を停止表示するものである。また、この演出図柄36の変動表示中に、さまざまな画像やキャラクタ等を表示することによって、大当たりに当選するかもしれないという高い期待感を遊技者に与えるようにもしている。
【0030】
上記演出用駆動装置33は、その動作態様によって遊技者に期待感を与えるものである。演出用駆動装置33は、例えば、ベルトが下方に移動したり、ベルト中央部の回転部材が回転したりする動作を行う。これら演出用駆動装置33の動作態様によって、遊技者にさまざまな期待感を与えるようにしている。
【0031】
さらに、上記の各種の演出装置に加えて、音声出力装置32は、バックグラウンドミュージック、サウンドエフェクト等を出力し、サウンドによる演出を行い、演出用照明装置34は、各ランプの光の照射方向や発光色を変更して、照明による演出を行うようにしている。
【0032】
また、演出ボタン35は、例えば、上記液晶表示装置31に当該演出ボタン35を操作するようなメッセージが表示されたときのみ有効となる。演出ボタン35には、演出ボタン検出スイッチ35a(図4参照)が設けられており、この演出ボタン検出スイッチ35aが遊技者の操作を検出すると、この操作に応じてさらなる演出が実行される。
【0033】
遊技領域6の右下方には、第1特別図柄表示装置20、第2特別図柄表示装置21、普通図柄表示装置22、第1特別図柄保留表示器23、第2特別図柄保留表示器24、普通図柄保留表示器25が設けられている。
【0034】
上記第1特別図柄表示装置20は、第1始動口14に遊技球が入球したことを契機として行われた大当たりの抽選結果を報知するものであり、7セグメントのLEDで構成されている。つまり、大当たりの抽選結果に対応する特別図柄が複数設けられており、この第1特別図柄表示装置20に大当たりの抽選結果に対応する特別図柄を表示することによって、抽選結果を遊技者に報知するようにしている。例えば、大当たりに当選した場合には「7」が表示され、ハズレであった場合には「−」が表示される。このようにして表示される「7」や「−」が特別図柄となるが、この特別図柄はすぐに表示されるわけではなく、所定時間変動表示された後に、停止表示されるようにしている。
【0035】
ここで、「大当たりの抽選」とは、第1始動口14または第2始動口15に遊技球が入球したときに、特別図柄判定用乱数値を取得し、取得した特別図柄判定用乱数値が「大当たり」に対応する乱数値であるか、「小当たり」に対応する乱数値であるかの判定する処理をいう。この大当たりの抽選結果は即座に遊技者に報知されるわけではなく、第1特別図柄表示装置20において特別図柄が点滅等の変動表示を行い、所定の変動時間を経過したところで、大当たりの抽選結果に対応する特別図柄が停止表示して、遊技者に抽選結果が報知されるようにしている。なお、第2特別図柄表示装置21は、第2始動口15に遊技球が入球したことを契機として行われた大当たりの抽選結果を報知するためのもので、その表示態様は、上記第1特別図柄表示装置20における特別図柄の表示態様と同一である。
【0036】
また、本実施形態において「大当たり」というのは、第1始動口14または第2始動口15に遊技球が入球したことを条件として行われる大当たりの抽選において、大当たり遊技を実行する権利を獲得したことをいう。「大当たり遊技」においては、第1大入賞口16または第2大入賞口17が開放されるラウンド遊技を計15回行う。各ラウンド遊技における第1大入賞口16または第2大入賞口17の最大開放時間については予め定められた時間が設定されており、この間に第1大入賞口16または第2大入賞口17に所定個数の遊技球(例えば9個)が入球すると、1回のラウンド遊技が終了となる。つまり、「大当たり遊技」は、第1大入賞口16または第2大入賞口17に遊技球が入球するとともに、当該入球に応じた賞球を遊技者が獲得できる遊技である。
【0037】
本実施形態では、「大当たりの抽選」においては、その当選確率により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回開放される。なお、本実施形態では、「大当たり遊技」と「小当たり遊技」とを総称して「特別遊技」という。
【0038】
また、普通図柄表示装置22は、普通図柄ゲート13を遊技球が通過したことを契機として行われる普通図柄の抽選結果を報知するためのものである。詳しくは後述するが、この普通図柄の抽選によって当たりに当選すると普通図柄表示装置22が点灯し、その後、上記第2始動口15が所定時間、第2の態様に制御される。
【0039】
ここで、「普通図柄の抽選」とは、普通図柄ゲート13に遊技球が通過したときに、普通図柄判定用乱数値を取得し、取得した普通図柄判定用乱数値が「当たり」に対応する乱数値であるかどうかを判定する処理をいう。この普通図柄の抽選結果についても、普通図柄ゲート13を遊技球が通過して即座に抽選結果が報知されるわけではなく、普通図柄表示装置22において普通図柄が点滅等の変動表示を行い、所定の変動時間を経過したところで、普通図柄の抽選結果に対応する普通図柄が停止表示して、遊技者に抽選結果が報知されるようにしている。
【0040】
さらに、特別図柄の変動表示中や後述する特別遊技中等、第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において表示される。
【0041】
ガラス枠50は、遊技盤2の前方(遊技者側)において遊技領域6を視認可能に覆うガラス板52を支持している。なお、ガラス板52は、ガラス枠50に対して着脱可能に固定されている。
【0042】
また、ガラス枠50は、左右方向の一端側(たとえば遊技機1に正対して左側)においてヒンジ機構部51を介して外枠60に連結されており、ヒンジ機構部51を支点として左右方向の他端側(たとえば遊技機1に正対して右側)を外枠60から開放させる方向に回動可能とされている。ガラス枠50は、ガラス板52とともに遊技盤2を覆い、ヒンジ機構部51を支点として扉のように回動することによって、遊技盤2を含む外枠60の内側部分を開放することができる。ガラス枠50の他端側には、ガラス枠50の他端側を外枠60に固定するロック機構が設けられている。ロック機構による固定は、専用の鍵によって解除することが可能とされている。また、ガラス枠50には、ガラス枠50が外枠60から開放されているか否かを検出する扉開放スイッチ133(図4参照)も設けられている。
【0043】
遊技機1の裏面には、主制御部110が搭載された主制御基板、演出制御部120が搭載された演出制御基板、払出制御部130が搭載された払出制御基板、電源部170が搭載された電源基板、遊技情報出力端子板30などが設けられている。また、電源部170に遊技機1に電力を給電するための電源プラグ171や、図示しない電源スイッチが設けられている。
【0044】
[遊技機の内部構成]
以下、本発明の実施形態に係る遊技機1の遊技進行に係る処理を制御する制御手段について説明する。
図4は、本実施形態に係る遊技機1の内部構成を示すブロック図である。
【0045】
主制御部110は、遊技の基本動作を制御する主制御手段であり、第1始動口検出スイッチ14a等の各種検出信号を入力して、第1特別図柄表示装置20や第1大入賞口開閉ソレノイド16c等を駆動させて遊技を制御するものである。
【0046】
この主制御部110は、メインCPU110a、メインROM110b、メインRAM110c、ブートROM110dから少なくとも構成されるワンチップマイコン110mと、主制御用の入力ポートと出力ポート(図示せず)とを少なくとも備えている。また、主制御部110は、出力ポートの中でも、特に、他の制御部(後述する演出制御部120や払出制御部130等)への制御コマンドの出力に用いられる送信部500を備えている。
【0047】
この主制御用の入力ポートには、払出制御部130、一般入賞口12に遊技球が入球したことを検知する一般入賞口検出スイッチ12a、普通図柄ゲート13に遊技球が入球したことを検知するゲート検出スイッチ13a、第1始動口14に遊技球が入球したことを検知する第1始動口検出スイッチ14a、第2始動口15に遊技球が入球したことを検知する第2始動口検出スイッチ15a、第1大入賞口16に遊技球が入球したことを検知する第1大入賞口検出スイッチ16a、第2大入賞口17に遊技球が入球したことを検知する第2大入賞口検出スイッチ17aが接続されている。この主制御用の入力ポートによって、各種信号が主制御部110に入力される。
【0048】
また、主制御用の出力ポートには、払出制御部130、第2始動口15の一対の可動片15bを開閉動作させる始動口開閉ソレノイド15c、第1大入賞口開閉扉16bを動作させる第1大入賞口開閉ソレノイド16c、第2大入賞口開閉扉17bを動作させる第2大入賞口開閉ソレノイド17c、特別図柄を表示する第1特別図柄表示装置20と第2特別図柄表示装置21、普通図柄を表示する普通図柄表示装置22、特別図柄の保留球数を表示する第1特別図柄保留表示器23と第2特別図柄保留表示器24、普通図柄の保留球数を表示する普通図柄保留表示器25、外部情報信号を出力する遊技情報出力端子板30が接続されている。この主制御用の出力ポートによって、各種信号が出力される。
【0049】
主制御部110のメインCPU110aは、各検出スイッチや内部機能として組み込まれている図示しないタイマ等からの入力信号に基づいて、メインROM110bに記憶されたプログラムを読み出して演算処理を行うとともに、演算処理の結果に応じて、主制御部110を構成する各構成部に対する制御指示(以下、「制御信号」という)や主制御部110以外の他の制御部に対する制御コマンドを出力したりする。
【0050】
主制御部110のメインROM110bには、遊技進行に係る処理の内容や手順を記述した遊技処理用プログラムや、各種の遊技の決定に必要な固定データ、テーブルが予め記憶されている。
メインROM110bに記憶されたテーブルとして一例を挙げれば、大当たり抽選に参照される大当たり判定テーブル、普通図柄の抽選に参照される当たり判定テーブル、特別図柄の停止図柄を決定する図柄決定テーブル、大当たり終了後の遊技状態を決定するための大当たり遊技終了時設定データテーブル、大入賞口開閉扉の開閉条件を決定する特別電動役物作動態様決定テーブル、大入賞口開放態様テーブル、特別図柄の変動パターンを決定する変動パターン決定テーブルなどがある。
【0051】
また、メインROM110bには、電源投入時などの遊技機1のリセット時に行われる主制御部110のブート処理中に、ワンチップマイコン110mの内蔵回路や周辺回路等に対して設定される初期値(いわゆるハードウェアパラメータ)が予め記憶されている。また、メインROM110bには、遊技機1固有の情報である固有情報などが予め記憶されている。
【0052】
主制御部110のブートROM110dには、ワンチップマイコン110mの内蔵回路や周辺回路等の初期化および初期値の設定処理(以下、「初期値設定処理」という)を含む、メインCPU110aが実行するブート処理の内容や手順を記述したブート処理用プログラムや、ブート処理用プログラムの実行の際に使用される固定データが記憶されている。このブート処理用プログラムは、メインCPU110aの起動直後に立ち上るように設定されている。
【0053】
主制御部110のメインRAM110cは、メインCPU110aの演算処理時におけるデータのワークエリアとして機能し、複数の記憶領域を有している。
メインRAM110cが有する記憶領域として一例を挙げれば、普通図柄保留数(G)記憶領域、普通図柄保留記憶領域、普通図柄データ記憶領域、第1特別図柄保留数(U1)記憶領域、第2特別図柄保留数(U2)記憶領域、第1特別図柄乱数値記憶領域、第2特別図柄乱数値記憶領域、ラウンド遊技回数(R)記憶領域、開放回数(K)記憶領域、大入賞口入球数(C)記憶領域、遊技状態記憶領域(高確率遊技フラグ記憶領域等)、高確率遊技回数(X)カウンタ、遊技状態バッファ、停止図柄データ記憶領域、送信データ用記憶領域、特別図柄時間カウンタ、特別遊技タイマカウンタなど各種のタイマカウンタなどがある。
【0054】
主制御部110の送信部500は、メインCPU110aからの指示によらず、主制御部110が出力する制御コマンドの正当性を検査して主制御部110の正当性を認証するための誤り検査値を生成するとともに、当該誤り検査値を、主制御部110に対する認証機能を担うよう予め定められた制御部(演出制御部120や払出制御部130等)へ送信する。具体的には、送信部500は、電源が投入されるとメインROM110bに記憶されたプログラムとは独立した自身のアルゴリズムに従って動作し、メインCPU110aから制御コマンドを受け取ると、受け取った制御コマンドの誤り検査値を生成する(以下、「検査値生成処理という」)。そして、送信部500は、生成した誤り検査値を制御コマンドに付加した後(以下、「検査値付加処理」という)、誤り検査値付きの制御コマンドとして、演出制御部120や払出制御部130等へ送信する。
【0055】
遊技情報出力端子板30は、主制御部110において生成された外部情報信号を遊技店のホールコンピュータ等に出力するための基板である。遊技情報出力端子板30は、主制御部110と配線接続され、外部情報を遊技店のホールコンピュータ等と接続をするためのコネクタが設けられている。
【0056】
電源部170は、コンデンサからなるバックアップ電源を備えており、遊技機1に電源電圧を供給するとともに、遊技機1に供給する電源電圧を監視し、電源電圧が所定値以下となったときに、電断検知信号を主制御部110へ出力する。より具体的には、電源電圧が、所定値以下を示すために電断検知信号がローレベルとなり一定時間経過すると、リセット信号がローレベルとなり、メインCPU110aは動作を停止する処理を行う。その後、電源電圧が、所定値以上を示すために電断検知信号がハイレベルとなり一定時間経過すると、リセット信号がハイレベルとなり、メインCPU110aは動作を開始する処理を行う。バックアップ電源はコンデンサに限らず、例えば、電池でもよく、コンデンサと電池とを併用して用いてもよい。
【0057】
演出制御部120は、主に遊技中や待機中等の各演出を制御する。この演出制御部120は、サブCPU120a、サブROM120b、サブRAM120cを備えており、主制御部110に対して、当該主制御部110から演出制御部120への一方向に通信可能に接続されている。サブCPU120aは、主制御部110から送信された制御コマンド、または、上記演出ボタン検出スイッチ35a、タイマからの入力信号に基づいて、サブROM120bに記憶されたプログラムを読み出して演算処理を行うとともに、当該処理に基づいて、対応するデータをランプ制御部140または画像制御部150に送信する。サブRAM120cは、サブCPU120aの演算処理時におけるデータのワークエリアとして機能する。
【0058】
例えば、演出制御部120におけるサブCPU120aは、主制御部110から送信された制御コマンドの1つである特別図柄の変動態様を示す変動パターン指定コマンドを受信すると、受信した変動パターン指定コマンドの内容を解析して、液晶表示装置31、音声出力装置32、演出用駆動装置33、演出用照明装置34に所定の演出を実行させるためのデータを生成し、かかるデータを画像制御部150やランプ制御部140へ送信する。
【0059】
演出制御部120のサブROM120bには、演出制御用のプログラムや各種の遊技の決定に必要なデータ、テーブルが記憶されている。
サブROM120bに記憶されたテーブルとして一例を挙げれば、主制御部から受信した変動パターン指定コマンドに基づいて演出パターンを決定するための演出パターン決定テーブル、停止表示する演出図柄36の組み合わせを決定するための演出図柄決定テーブルなどがある。
【0060】
また、主制御部110に対する認証機能が演出制御部120に備えられている場合には、サブROM120bには、サブCPU120aにて行われる受信した制御コマンドへの誤り検査処理を含む認証処理の内容や手順を記述した認証処理用プログラムや、認証処理用プログラムを実行する際に使用される固定データ、および主制御部110のメインROM110bに記憶された固有情報に対応する情報などが予め記憶されている。なお、主制御部110に対する認証機能が払出制御部130に備えられている場合には、後述する払出ROMに、上記演出制御部120の認証処理に関するプログラム等が記憶されている。また、これら認証処理に関する構成については後述する。
【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、ホストCPU150aのワークエリアとして機能する一時的な記憶領域を有するホストRAM、ホストCPU150aの制御処理のプログラム等が記憶されたホストROM、画像データが記憶されたCGROM、画像データを描画するフレームバッファを有するVRAM、画像プロセッサとなるVDP(Video Display Processor)と、音の制御を行う音制御回路とを備えている。
【0066】
ホストCPUは、演出制御部120から受信した演出パターン指定コマンドに基づいて、VDPにCGROMに記憶されている画像データを液晶表示装置31に表示させる指示を行う。
VDPは、ホストCPUからの指示に基づいて、CGROMに記憶された画像データをVRAMのフレームバッファに描画する。次に、VRAMにある表示用のフレームバッファに記憶された画像データに基づいて映像信号(RGB信号等)を生成し、生成した映像信号を液晶表示装置に出力する。
【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の制御処理を行う制御部を総称して「周辺部300」という。また、演出制御部120が搭載された演出制御基板や払出制御部130が搭載された払出制御基板など、周辺部300の各制御部が搭載された各制御基板を総称して「周辺基板」という。なお、ランプ制御部140および画像制御部150は、演出制御部120と同一の基板上に搭載することもできる。また、払出制御部130および発射制御部160は、主制御部110と同一の基板上に搭載することもできる。
【0075】
[遊技機の認証処理に関する内部構成]
以下、上記構成の遊技機1が不正行為防止のために有するセキュリティ機能を実現する制御手段について説明する。
本実施形態に係る遊技機1のセキュリティ機能は、周辺部300が主制御部110から送信された制御コマンドの正当性を検査し主制御部110の認証を行うことによって実現される。そのために主制御部110および周辺部300が実行する処理を、通常の遊技進行に係る処理とは区別する意味で「認証処理」という。なお、本実施形態では、周辺部300のうちの演出制御部120に、主制御部110に対する認証機能が備えられていることとして説明する。
【0076】
具体的には、主制御部110は、制御コマンドを生成し演出制御部120へ送信する際に、当該制御コマンドより前(過去)に生成された制御コマンドの誤り検査値を生成し、今回送信すべき制御コマンドに付加して送信する。演出制御部120は、今回受信した制御コマンドに付加された誤り検査値と、当該制御コマンドより前に受信した制御コマンドを用いて予め生成しておいた誤り検査値とを照合する。そして、両者が一致すると、今回受信した制御コマンドの正当性が認証され、主制御部110の認証に成功したと判断される。
【0077】
図5は、本実施形態に係る主制御部110の認証処理に関する内部構成を示す機能ブロック図である。図6は、本実施形態に係る(a)メインROM110bおよび(b)ブートROM110dのメモリマップを説明するための概略図である。図7は、本実施形態に係る制御コマンドへの誤り検査値の付加手順を説明するための概略図である。また、図6では、本発明の特徴的な領域以外は省略している。また、「xxxFH」などのアドレス表記は、各領域の区分を示すために便宜上設けたものであるとともに、各領域同士の位置関係においても、図6に示した位置関係に限定されるものではない。
【0078】
主制御部110は、上記のようなメインCPU110a、メインROM110b、およびブートROM110dに加え、メインCPU110aからの送信指示に基づき、演出制御部120への制御コマンドの送信や誤り検査値の生成処理を行う送信部500を少なくとも備えている。また、これら主制御部110の各構成部は、各々が出力する各種データや信号を授受できるよう内部バス550にて接続されている。内部バス550は、アドレスバス、データバス、および制御バスの機能を少なくとも備え、主制御部110の各構成部から出力された制御信号に基づき内部バス550を通るデータの割り当てを行い、データの衝突が生じないように制御している。なお、図5においては、便宜上、内部バス550という形では明示せず、主制御部110の各構成部を結ぶ信号線として表している。
【0079】
メインCPU110aは、上記のような遊技進行に係る処理を実行する他、遊技機1での認証処理を実行する。メインCPU110aは、ブートROM110dに記憶されたブート処理用プログラムやメインROM110bに記憶された各種初期値を用いて、各種演算処理を実行するとともに、各種演算処理の結果に応じて制御信号や制御コマンドを出力する。
【0080】
例えば、メインCPU110aは、遊技処理用プログラムに基づいて、演出制御部120にて遊技進行に応じた演出処理を実行させるための制御コマンドを送信部500にて送信させる処理(以下、「コマンド送信処理」という)を行う際には、送信部500へ当該制御コマンドを書き込むための制御信号(以下、「書き込み信号」という)を出力し、当該制御コマンドを送信部500にて送信させる。
また、メインCPU110aは、ブート処理用プログラムに基づいて、ブート処理中の初期値設定処理を行う際には、メインROM110bに記憶された各種初期値を読み出すための制御信号(以下、「読み出し信号」という)を出力して各種初期値を取得し、取得した各種初期値のそれぞれに対応した構成回路へ出力して設定処理を行う。
【0081】
メインROM110bには、上記のような遊技処理用プログラムやデータの他、リセット時のような主制御部110のブート処理後に初めて出力する制御コマンドに付加する誤り検査値として使用する、遊技機1の固有情報が記憶されている(図6(a)の「xyz0H」〜「xzxFH」の領域)。また、メインROM110bは、メインCPU110aや送信部500からの読み出し信号に応じて、遊技処理用プログラムコードや固有情報などを出力する。
【0082】
主制御部110が出力する制御コマンドは、演出制御部120へ送信される際に、図7に示すように、今回送信するべき制御コマンドより前(過去)に生成された制御コマンドの誤り検査値が付加されるようになっている。この付加するべき誤り検査値は、所定の記憶領域(後述する送信部500の格納回路522)に格納されている。ただし、電源投入直後などの遊技機1のリセット時などにおいて、主制御部110が初期化された場合は、上記記憶領域に格納されていた付加するべき誤り検査値もクリアされる。このとき、付加するべき誤り検査値がクリアされてから、最初に生成された制御コマンドなどに付加する誤り検査値(以下、「初期検査値」)として、メインROM110bに予め格納された固有情報を用いる。初期検査値は、後述する誤り検査値の付加手順の内容によっては複数個(N個;Nは正の整数)必要であるため、固有情報は、少なくとも初期検査値の必要数個以上、予め用意されている。
【0083】
ここで、誤り検査値が上記のようにクリアされた直後に、最初に生成れた制御コマンドを「制御コマンド(1)」といい、制御コマンド(1)を用いて生成された誤り検査値を「誤り検査値(1)」という。同様に、誤り検査値が上記のようにクリアされてからP番目(Pは正の整数)に生成された制御コマンドを「制御コマンド(P)」といい、制御コマンド(P)を用いて生成された誤り検査値を「誤り検査値(P)」という。Pの値は、誤り検査値が上記のようにクリアされた直後からの制御コマンドの生成個数を示しており、公知のカウンタ回路などによって計数すればよい(以下、Pを「生成個数」という)。また、本実施形態では、今回送信する制御コマンド(P)に対し、これよりN個前に生成した制御コマンド(P−N)の誤り検査値(P−N)を付加する。Nの値は、今回送信する制御コマンドに対して、何個前に生成された制御コマンドの誤り検査値を付加するのかということを予め取り決めておいた数である(以下、Nを「遡及数」という)。
【0084】
固有情報は、主制御部110が保持する遊技機1固有の情報であれば特に限定されない。固有情報は、図6(a)では、メインROM110bの固定データが記憶された領域の中の特定のアドレス(図6(a)の「xyz0H」〜「xzxFH」の領域)のデータ(例えば、制御コマンドデータ)となっているが、例えば、メインROM110bのプログラムコードが記憶された領域(図6(a)の「0000H」〜「xxzFH」の領域)の中の特定のアドレスにおけるチェックサム値や、メインCPU110aに固有に付与されている識別番号(ID)や、メーカーコード・機種コード等の製品情報などが考えられる。また、予め演出制御部120との間で取り決められた誤り検査値のダミーデータなども考えられる。なお、固有情報は、メインROM110bとは別個の記憶手段(メモリセルやROMなど)に記憶されていてもよい。
【0085】
また、メインROM110bには、上記のようなワンチップマイコン110mの内蔵回路や周辺回路等の初期値の一つであって、送信部500に設定される初期値である「生成パラメータ」が予め記憶されている(図6(a)の「yyy0H」〜「yyzFH」の領域)。生成パラメータは、送信部500が有する複数の誤り検査値を付加する機能(以下、「誤り検査値付加機能」という)のうち、どの誤り検査値付加機能を採用するのかを選択するための選択情報である。誤り検査値付加機能およびその選択情報は、予め主制御部110と演出制御部120との間で取り決めておく。本実施形態では、送信部500には、複数の誤り検査値付加機能として、複数の遡及数Nの値が予め用意されており、ブート処理中の初期値設定処理の際に、送信部500に対して特定の遡及数Nの値が使用されるように設定される。生成パラメータは、この遡及数Nの値としてどの値を採用するのかを選択する為の選択情報である。
【0086】
例えば、複数の遡及数Nの値のそれぞれと対応付けられた複数の生成パラメータを用意し、送信部500には、遡及数Nと生成パラメータの対応関係が分かるデータテーブルを予め設けておく。そして、ブート処理中の初期値設定処理の際、メインCPU110aが送信部500へ特定の生成パラメータを設定すると、送信部500は、設定された生成パラメータを確認し、当該生成パラメータに対応した特定の遡及数Nの値に即して、誤り検査値を付加する処理を行うことを決定する。そして、送信部500は、決定した遡及数Nの値に基づく誤り検査値の付加手順(以下、「付加プロトコル」という)に従って検査値付加処理を行うべく、自身内での設定処理を行う(以下、「付加プロトコル設定処理」という)。なお、本実施形態では、ブート処理中の初期値設定処理でも、特に、送信部500へ特定の生成パラメータを設定する処理を「生成パラメータ設定処理」という。
【0087】
なお、上記初期値および生成パラメータを記憶する領域は、図6ではメインROM110b内の領域であるが、本発明はこれに限定されず、メインROM110bとは別個のメモリセルに記憶したり、ブートROM110d内に記憶したりするように構成することもできる。すなわち、本発明では、上記初期値および生成パラメータの記憶領域と、遊技処理用プログラムや固定データ等の記憶領域とは、同一の記憶手段(メモリセルやROMなど)に搭載されていてもよいし、異なる記憶手段に搭載されていてもよい。
【0088】
ブートROM110dには、ブート処理用プログラムやブート処理用プログラムの実行の際に使用される固定データが予め記憶されている(図6(b)の「zxx0H」〜「zyzFH」の領域)。ブート処理用プログラムは、メインCPU110aの起動直後にブートROM110dからブート処理専用RAM(図示せず)へ読み込まれ、メインCPU110aにて実行が開始されるように予め設定されており、メインCPU110a自身の自己診断処理や、メインCPU110aを搭載するワンチップマイコン110mの内蔵回路や送信部500を含む周辺回路等の初期化および初期値の設定処理(すなわち初期値設定処理)を制御するものである。なお、本実施形態では、ブート処理後に実行される遊技処理用プログラムなど、ブート処理用プログラム以外のプログラムを「ユーザープログラム」という。
【0089】
ブート処理用プログラムは、CPUメーカーが開発・実装するプログラムであり、これらが記憶されたブートROM110dに対するアクセスは、遊技機1の出荷後、ブート処理時のメインCPU110aからのアクセスにのみ制限されている。一方、ユーザープログラムは、遊技機メーカーが開発・実装するプログラムであり、これらが記憶されたメインROM110bに対するアクセスは、遊技処理が実行されるたびにメインCPU110aからアクセスされる。しかしながら、メインROM110bの記憶領域でも、ワンチップマイコン110mの内蔵回路や送信部500を含む周辺回路等の初期値(生成パラメータを含む)が記憶された領域など、ユーザープログラムや固定データ等(固有情報を含む)が記憶された領域以外の記憶領域(例えば、図6(a)の「yxx0H」〜「yyzFH」の領域)は、ブート処理用プログラムの中でのみ定義された領域であり、遊技処理に係るユーザープログラム上では全く現れることが無い領域とされている。つまり、ブート処理が終了した後は、上記領域(図6(a)の「yxx0H」〜「yyzFH」の領域)は、ユーザープログラムからはアクセスできないように実質的な制限がかけられた領域とされている。
【0090】
しかしながら、不正なアクセスを試みられた場合を考慮して、以下に示すさらなる制限をかけることで、ブート処理時にのみ得られる生成パラメータの秘匿性をより向上させることができる。
【0091】
ブートROM110dおよびメインROM110bへのアクセス制限は、例えば、主制御部110に実行アドレス監視手段(図示せず)を設けておき、ブート処理終了後に実行アドレス監視手段を作動させ、ユーザープログラムが所定のアドレス(例えば、図6(a)の「0000H」〜「xzyFH」の領域)を超えた領域へアクセスしようとした場合には、メインCPU110aへリセット信号を出力してメインCPU110aを動作停止状態にすればよい。また、リセット信号を出力しないまでも、異常を検知した旨を示す報知信号を出力するようにしてもよい。
【0092】
また、生成パラメータのメインROM110bへの実装においては複数の方法が考えられる。例えば、送信部500に備えられた複数の遡及数Nの値のそれぞれと対応する複数の生成パラメータを予め用意し、メインROM110bに実装する。そして、生成パラメータ設定処理の中で、どの生成パラメータを採用するかを選択するためのプログラムをブートROM110dに実装しておき、ブート処理のたびにどの遡及数Nの値を用いるのかを任意に選択できるように構成することができる。このように実装すると、ブート処理のたびに誤り検査値の付加プロトコルが変更され、誤り検査値付加機能の秘匿性を向上させることができ、遊技機1のセキュリティ強度を向上させることができる。
【0093】
一方、送信部500に備えられた遡及数Nの値および生成パラメータについては予め複数用意するものの、特定の生成パラメータのみをメインROM110bに実装し、これに対応する特定の遡及数Nの値のみを用いた、誤り検査値の付加プロトコルだけが採用されるように構成することもできる。このように実装すると、ブート処理での生成パラメータの選択処理に伴うプログラムを新たに設ける必要がなく、プログラムのコードサイズを増大させることがない。また、このように実装すると、遊技機メーカーが特定の付加プロトコルだけを採用したい場合であっても、遊技機メーカーが行うプログラム実装過程において、所望の付加プロトコルを示す遡及数Nの値に対応した生成パラメータのみをメインROM110bに実装すればよく、遊技機メーカーの用途や嗜好に柔軟に対応することができる。
【0094】
なお、この場合であっても、生成パラメータは、主制御部110のブート処理時の初期値設定時以外ではアクセスされない記憶領域に記憶されているため、外部から遡及数Nの値を知ることができない。そのため、不正者が、遊技機1で採用された誤り検査値の付加プロトコルを解析することは困難であり、遊技機1が有する誤り検査値付加機能の秘匿性は確保される。また、遊技機1の開発段階中で設計・検証作業などに使用する生成パラメータと、その後に実際に実装される生成パラメータとを変えることによって、最終的にどの生成パラメータが実装されたのかを知り得る者が限定され、誤り検査値付加機能の秘匿性は更に向上する。本実施形態では、特定の遡及数Nの値に対応する生成パラメータのみがメインROM110bに実装されていることとして説明する。
【0095】
送信部500は、メインCPU110aから出力されたデータの中でも、特に、制御コマンドを演出制御部120等の他の制御部へ送信するための出力ポートの機能を果たし、制御部510と、検査値生成部520と、送信バッファ530と、送信回路540とを少なくとも備えている。なお、検査値生成部520は、誤り検査値を生成する生成回路521と、生成した誤り検査値を格納する格納回路522と、格納回路522から送信バッファ530へ出力する誤り検査値等が格納された領域のアドレスを設定するアドレス設定部523と、送信する制御コマンドの種別を判定する判定回路524とを少なくとも有している。
【0096】
制御部510は、自身が保持するアルゴリズムに従って、ブート処理中の付加プロトコル設定処理、ならびにブート処理後の検査値生成処理および検査値付加処理を含むコマンド送信処理など、遊技機1のセキュリティ機能実現に係る主制御部110の処理全般を制御する回路である。
【0097】
制御部510は、付加プロトコル設定処理において、メインCPU110aによって設定された生成パラメータに対応した遡及数Nの値に即して、格納回路522に格納された誤り検査値が送信バッファ530へ出力されるように、アドレス設定部523に対してアドレスデータを設定する。
【0098】
本実施形態では、生成回路521にて生成された複数の誤り検査値は、格納回路522の各記憶領域(以下、「格納領域」という)へ誤り検査値ごとにそれぞれ格納されるため、生成された各誤り検査値は、格納回路522の各格納領域をそれぞれ指定するアドレスデータや識別番号などで特定することができる。すなわち、本実施形態では、誤り検査値の付加プロトコルとして特定の遡及数Nの値が決定されたならば、今回送信する制御コマンド(P)に付加すべき誤り検査値は、当該制御コマンド(P)の誤り検査値(P)が格納された格納領域(P)を指定するアドレスデータや識別番号から、N個分遡ったアドレスデータや識別番号にて指定される格納領域(P−N)に格納された誤り検査値(P−N)であることが一意に決定することになる。そして、検査値付加処理の際には、格納領域(P−N)に格納された誤り検査値(P−N)が格納回路522から出力され、今回送信する制御コマンド(P)に付加されることになる。
【0099】
制御部510には、現在設定されている遡及数Nの値を記憶しておく遡及数記憶領域(N)を設けておく。また、制御部510には、格納回路522の複数の格納領域のアドレスデータと複数の遡及数Nの値との対応関係が分かるデータテーブルを設けておく。そして、制御部510は、付加プロトコル設定処理において、メインCPU110aから設定された生成パラメータに対応する遡及数Nの値を、デフォルト値として遡及数記憶領域(N)に記憶する。そして、制御部510は、後述する検査値付加処理の際に、遡及数記憶領域(N)に記憶された値に基づいて、格納回路522の複数の格納領域のうちのどの格納領域から誤り検査値を読み出して送信バッファ530へ出力すればよいかを確認し、当該格納領域を指定するアドレスデータのみをアドレス設定部523へ出力するように設定する。なお、遡及数記憶領域(N)には、後述するように遡及数Nが変更された場合には、変更後の遡及数Nの値が記憶されることになる。
【0100】
また、制御部510は、メインCPU110aからの制御コマンドの出力に基づいて、格納回路522に格納された誤り検査値を制御コマンドに付加する検査値付加処理を行う。具体的には、制御部510は、メインCPU110aが送信バッファ530へ出力する制御コマンドの書き込み信号を、内部バス550を通じて検知する検知手段(図示せず)を備えており、当該書き込み信号を検知することで、メインCPU110aが制御コマンドを送信バッファ530へ出力するタイミングを知ることができる。そして、制御部510は、当該書き込み信号の検知を契機として、格納回路522に格納された誤り検査値を読み出すための読み出し信号を出力して格納された誤り検査値を内部バス550へ出力させるとともに、読み出した誤り検査値を送信バッファ530へ書き込むための書き込み信号を出力し、内部バス550へ出力された誤り検査値を送信バッファ530へ書き込んでセットする。
【0101】
すなわち、制御部510は、格納回路522に対する読み出し信号および送信バッファ530に対する書き込み信号を、メインCPU110aが出力する制御コマンドの書き込み信号を検知したことを契機として出力する。ただし、制御部510は、上記制御コマンドの書き込み信号を検知したときは無制限に上記の両制御信号を出力するわけではなく、後述する誤り検査値の付加プロトコルに従って出力する。制御部510が、上記の両制御信号を出力するタイミングについては後述する。そして、送信バッファ530にて、上記制御コマンドに誤り検査値が付加される。
【0102】
なお、制御部510には、現在までの制御コマンドの生成個数Pの値を記憶しておく生成個数記憶領域(P)を設けておく。そして、制御部510は、検査値付加処理において、メインCPU110aが出力する制御コマンドの書き込み信号を検知したときに生成個数記憶領域(P)の値に1を加算して更新し、当該書き込み信号に対応して送信バッファ530に書き込まれた制御コマンドが、リセット時など付加すべき誤り検査値がクリアされてからP番目に生成された制御コマンド(P)であることを把握できるようにしておく。
【0103】
また、制御部510は、検査値付加処理において、リセット時など付加するべき誤り検査値がクリアされ格納回路522に格納されていない場合は、主制御部110のブート処理後の初期化処理中に、メインROM110bに記憶された固有情報を格納回路522へ設定する。具体的には、制御部510は、メインROM110bに記憶された固有情報を格納回路522へ書き込むための書き込み信号を出力し、格納回路522を構成する初期検査値格納領域へ固有情報を書き込み、当該固有情報を誤り検査値の初期検査値として格納する。このとき、後述する誤り検査値の付加プロトコルに起因して、固有情報が予め複数個(N個)用意されている場合は、制御部510は、複数個(N個)の初期検査値を格納することになる。
【0104】
そして、制御部510は、今回用いる初期検査値を初期検査値格納領域から読み出すための読み出し信号を出力するとともに、読み出した初期検査値を送信バッファ530へ書き込むための書き込み信号を出力し、当該初期検査値を送信バッファ530へ書き込んでセットする。そして、送信バッファ530にて、上記制御コマンドに初期検査値を付加させる。なお、制御部510は、メインROM110bに記憶された固有情報を初期検査値格納領域へ一旦格納せずに、直接送信バッファ530へ書き込むこともできる。
【0105】
本実施形態では、メインCPU110aから出力された制御コマンドに対して初期検査値を付加すべきか否かを判断する必要があるが、制御部510は、現在の生成個数Pおよび遡及数Nを把握しているため、両者の値を比較することで初期検査値を付加すべきか否かを判断すればよい。例えば、制御部510に、生成個数記憶領域(P)の値と遡及数記憶領域(N)の値とを比較するための比較回路(図示せず)を設けておく。そして比較結果がP>Nであれば初期検査値は付加せず、P≦Nであれば、初期検査値を付加するようにすればよい。
【0106】
具体的には、P>Nであれば、制御部510は、予め生成されて格納回路522の格納領域(P−N)に格納されていた誤り検査値(P−N)を、送信バッファ530に書き込んで、制御コマンドに誤り検査値を付加させる。また、P≦Nであれば、制御部510は、メインROM110bに格納されたN個の固有情報を、格納回路522の初期検査値格納領域に初期検査値(1)〜初期検査値(N)として格納し、制御コマンド(1)〜制御コマンド(N)と対応付ける。そして、制御部510は、初期検査値(1)〜初期検査値(N)のいずれかを、制御コマンドの生成順序と対応するように送信バッファ530に書き込んで、制御コマンドに初期検査値を付加させる。
【0107】
ところで、制御部510は、検査値付加処理の際に、判定回路524から出力される判定結果信号の内容を確認し、予め演出制御部120との間で取り決められた変更規則に従って遡及数Nの値を変更する。判定回路524は、メインCPU110aが出力する制御コマンドが、付加プロトコルを変更する条件(以下、「変更条件」という)を満たす制御コマンドであるか否かを判定する。そして、判定回路524は、当該制御コマンドが変更条件を満たす制御コマンドであるか否かの判定結果を通知するための制御信号(以下、「判定結果信号」という)を制御部510へ出力する。制御部510は、判定回路524から出力された判定結果信号を確認し、変更条件を満たす制御コマンドが出力されたならば、予め定めた誤り検査値の付加プロトコルの変更タイミングで、現在の付加プロトコルから新たな付加プロトコルへ変更すべく、所定の変更方式に従って遡及数Nの値を変更する。すなわち、上記変更規則とは、付加プロトコルを変更すべきかを判定するための変更条件と、付加プロトコルの変更タイミングの設定方法と、遡及数Nの変更方式とから少なくとも構成される。
【0108】
変更条件は、予め演出制御部120との間で取り決めておけば基本的に任意である。例えば、メインCPU110aが出力する制御コマンドの種別が、予め定めた所定の制御コマンドの種別に該当するか否かを変更条件として設定する。そして、判定回路524は、メインCPU110aから出力された制御コマンドが所定の制御コマンドであれば、メインCPU110aから出力された制御コマンドが変更条件を満たす制御コマンドであるとする判定結果信号を出力する。制御部510は、判定結果信号の内容を確認し、メインCPU110aが現に出力した制御コマンドが、変更条件を満たす制御コマンドであると判断すると、付加プロトコルを変更、具体的には現在の遡及数Nを変更することとする。所定の制御コマンドの種別としては、一つの種別でも複数の種別でもよく、種別自体も任意である。
【0109】
遡及数Nの変更方式は、予め演出制御部120との間で取り決めておけば基本的に任意である。例えば、現在の遡及数Nの値に、予め取り決めておいた各種の四則演算や論理演算を施して得られた演算結果を変更後の遡及数Nの値としたり、予め用意した乱数生成回路を作動させ、得られた乱数値を変更後の遡及数Nの値としたりすることができる。但し、乱数生成回路を用いる場合は、得られた乱数値を演出制御部120へ通知する必要がある。
【0110】
また、付加プロトコルの変更タイミングの設定方法は、予め演出制御部120との間で取り決めてあれば基本的に任意であるが、本実施形態では、次のように変更タイミングを設定するものとする。すなわち、制御部510は、メインCPU110aが現に出力した制御コマンド(P)が所定の制御コマンドである場合は、生成個数PがMo個(Mo;非負の整数)経過した時点(すなわち、生成個数がP+Moの時)に、上記変更方式に従って遡及数Nを変更し、当該時点に出力された制御コマンド(P+Mo)に対して、変更後の遡及数の値N’に相当する誤り検査値(P+Mo−N')を付加するものとする。本実施形態では、Moは、予め演出制御部120との間で取り決めてある固定値である。
【0111】
なお、制御部510には、付加プロトコルの変更タイミング時の生成個数Pの値を示す変更タイミング情報Miを記憶する変更タイミング情報記憶領域(Mi)を設けておく。制御部510は、メインCPU110aが出力した制御コマンドが、変更条件を満たす制御コマンドである場合に、当該制御コマンドの生成個数Pに、予め取り決められたMoの値を加えた値(P+Mo)を、変更タイミング情報Mi(=P+Mo)として、変更タイミング情報記憶領域(Mi)に記憶する。すなわち、変更タイミング情報記憶領域(Mi)に記憶された値は、所定の制御コマンドが出力されてからMo個後に出力された制御コマンドの生成個数Pと等しくなる。
【0112】
よって、制御部510は、現在の制御コマンドの生成個数P、すなわち、生成個数記憶領域(P)の値と、変更タイミング情報記憶領域(Mi)の値とを比較することで、現在は変更タイミングであるか否かを把握することができる。制御部510には、生成個数記憶領域(P)の値と変更タイミング情報記憶領域(Mi)の値とを比較するための比較回路(図示せず)を設けておく。なお、制御部510は、生成個数記憶領域(P)の値と変更タイミング情報記憶領域(Mi)の値とが一致して変更タイミングが到来し、付加プロトコルを変更した後(遡及数記憶領域(N)の値を変更した後)は、変更タイミング情報記憶領域(Mi)をクリアする。
【0113】
本実施形態では、現にメインCPU110aが出力する制御コマンドが変更条件を満たす制御コマンドであると判明した時点から、実際に遡及数Nを変更する時点までの間に、更に変更条件を満たす制御コマンドが出力される可能性がある。そこで、本実施形態では、複数の変更タイミング情報記憶領域(Mi)を設けておく。iは、複数の変更タイミング情報記憶領域(Mi)のそれぞれに対する識別番号である。制御部510は、変更条件を満たす制御コマンドが出力されるごとに、それぞれの変更タイミング情報Miを変更タイミング情報記憶領域(Mi)へ記憶しておく。変更タイミング情報記憶領域(Mi)は、付加プロトコルを変更した後(遡及数記憶領域(N)の値を変更した後)はクリアされる。よって、変更タイミング情報Miは、付加プロトコルの変更タイミングが到来した時点から(遡及数Nを変更してから)、更に変更条件を満たす制御コマンドが生成された個数分だけ記憶されることとなり、制御部510は、最大でもMo+1個分の変更タイミング情報記憶領域(Mi)を確保しておけば足りる。このように取り決めておくと、iの値の取り得る範囲は、1≦i≦Mo+1となる。なお、本実施形態では、複数の変更タイミング情報Miの値の中で、最も小さい変更タイミング情報Miの値を「Mmin」という。
【0114】
ここで、誤り検査値の付加プロトコルおよびその変更について、図7を用いて説明する。本実施形態における誤り検査値の付加プロトコルは、メインCPU110aが今回送信するとして送信バッファ530にセットした制御コマンド(P)に対し、これよりN個前に生成された制御コマンド(P−N)の誤り検査値(P−N)を付加するというものである。図7では、付加すべき誤り検査値がクリアされてから11番目に出力された制御コマンド(制御コマンド(1)〜制御コマンド(11))までの例を示す。また、図7では、生成パラメータ設定処理で設定された生成パラメータに対応するデフォルトの遡及数Nの値をN=2、すなわち、遡及数記憶領域(N)にはN=2が記憶されているものとする。また、変更タイミングの指標となるMoの値をMo=3とする。
【0115】
まず、制御部510は、メインCPU110aが出力した制御コマンド(1)の書き込み信号を検知すると、生成個数記憶領域(P)の値を「P=1」に更新して、当該制御コマンド(1)が生成個数の値がいくつの制御コマンドであるかを把握する(以下、図7の説明において同様とする)。そして、制御部510は、判定回路524から出力された判定結果信号を確認し、当該制御コマンド(1)が変更条件を満たす制御コマンドであるかを確認する(以下、図7の説明において同様とする)。図7では、制御コマンド(1)は、変更条件を満たす制御コマンドではないとする。このとき、変更タイミング情報記憶領域(Mi)はクリアされたままであり、変更タイミング情報Miを設定する必要はない。また、制御部510は、生成個数記憶領域(P)の値(P=1)と遡及数記憶領域(N)の値(N=2)とを比較する(以下、図7の説明において同様とする)。図7では、生成個数記憶領域(P)の値が遡及数記憶領域(N)の値以下(P≦N)であるため、制御コマンド(1)に付加すべき誤り検査値は初期検査値(1)となる。制御コマンド(2)のときも同様である。
【0116】
続いて、メインCPU110aから制御コマンド(3)が出力されたときを説明する。図7では、制御コマンド(3)は変更条件を満たす制御コマンドではないので、制御部510は、変更タイミング情報Miを設定しない。また、生成個数記憶領域(P)の値(P=3)が遡及数記憶領域(N)の値(N=2)より大きい(P>N)ため、制御コマンド(3)に付加すべき誤り検査値は、誤り検査値(P−N)、すなわち、制御コマンド(1)の誤り検査値(1)となる。制御コマンド(4)のときも同様である。
【0117】
続いて、メインCPU110aから制御コマンド(5)が出力されたときを説明する。図7では、制御コマンド(5)は変更条件を満たす制御コマンドであるので、制御部510は、変更タイミング情報MiをM1として設定する。変更タイミング情報M1は、上述のように、M1=P+Mo=5+3=8であり、制御部510は、変更タイミング情報記憶領域(M1)にM1=8の値を記憶する。これをもって、制御部510は、生成個数記憶領域(P)の値がP=8になったタイミングで、遡及数記憶領域(N)の値を変更しなければならないことが分かる。また、制御部510は、変更タイミング情報記憶領域(Mi)の値(M1=8)と生成個数記憶領域(P)の値(P=5)とを比較する(以下、図7の説明において同様とする)。図7では、変更タイミング情報記憶領域(M1)の値と生成個数記憶領域(P)の値が一致しないため、現在は変更タイミングではなく、遡及数記憶領域(N)の値(N=2)は維持される。よって、制御コマンド(5)に付加すべき誤り検査値は、制御コマンド(3)の誤り検査値(3)となる。
【0118】
続いて、メインCPU110aから制御コマンド(6)が出力されたときを説明する。図7では、制御コマンド(6)は変更条件を満たす制御コマンドではないので、制御部510は、変更タイミング情報Miを新たに設定しない。また、変更タイミング情報記憶領域(Mi)の値(M1=8)が生成個数記憶領域(P)の値(P=6)と一致しないため、遡及数記憶領域(N)の値(N=2)は維持され、制御コマンド(6)に付加すべき誤り検査値は、制御コマンド(4)の誤り検査値(4)となる。
【0119】
続いて、メインCPU110aから制御コマンド(7)が出力されたときを説明する。図7では、制御コマンド(7)は変更条件を満たす制御コマンドであるので、制御部510は、変更タイミング情報MiをM2として設定する。変更タイミング情報M2は、上述のように、M2=P+Mo=7+3=10であり、制御部510は、変更タイミング情報記憶領域(M2)にM2=8の値を記憶する。これをもって、変更タイミング情報記憶領域(Mi)には、M1=8とM2=10の2つの変更タイミング情報が設定されることになる。そして、制御部510は、変更タイミング情報記憶領域(Mi)の中で最小値Mminをもった変更タイミング情報記憶領域(M1)の値(M1=8)と、生成個数記憶領域(P)の値(P=7)とを比較する。変更タイミング情報記憶領域(M1)の値と生成個数記憶領域(P)の値が一致しないため、現在は変更タイミングではなく、遡及数記憶領域(N)の値(N=2)は維持される。よって、制御コマンド(7)に付加すべき誤り検査値は、制御コマンド(5)の誤り検査値(5)となる。
【0120】
続いて、メインCPU110aから制御コマンド(8)が出力されたときを説明する。図7では、制御コマンド(8)は変更条件を満たす制御コマンドではないので、制御部510は、変更タイミング情報Miを新たに設定しない。また、変更タイミング情報記憶領域(Mi)の中で最小値Mminをもった変更タイミング情報記憶領域(M1)の値(M1=8)が生成個数記憶領域(P)の値(P=8)と一致するため、現在は変更タイミングである。制御部510は、遡及数記憶領域(N)の値(N=2)を予め取り決められた変更方式に従って変更する。図7では、N=2→N’=4に変更されたとする。そして、制御部510は、遡及数記憶領域(N)の値(N’=4)を確認し、制御コマンド(8)に付加すべき誤り検査値を、制御コマンド(4)の誤り検査値(4)とするとともに、最小値Mminをもった変更タイミング情報記憶領域(M1)の値(M1=8)をクリアする。
以後、上記と同様な処理を行い、遡及数Nを変更しながら付加すべき誤り検査値を決定していく。
【0121】
遡及数Nの値の取り得る範囲は、格納回路522(および演出制御部120の格納部622)の記憶容量によって制限されるものの、基本的には任意である。Nの値が大きければ、不正者にとっては、制御コマンドとそれに付加された誤り検査値との関係性を解析することがより困難となり、不正行為をより一層防止することができる。但し、Nの値が、例えば1日の遊技機稼働中における制御コマンドの送信回数より遥かに大きい値となると、制御コマンドに付加される誤り検査値は全て固有情報となり、固有情報の秘匿性が損なわれるおそれがある。
【0122】
なお、主制御部110が、制御コマンド(P)を生成する度に、演出制御部120へ送信するならば、遡及数Nは、今回送信する制御コマンドに対して、何個前に送信された制御コマンドの誤り検査値を付加するのかということを取り決めておいた数であると考えることができる。本発明には、このような概念も含まれる。すなわち、この場合、誤り検査値(P−N)は、今回送信する制御コマンド(P)に対して、これよりN個前に送信した制御コマンド(P−N)の誤り検査値となる。また、本実施形態では、「誤り検査値」および「誤り検査値(P−N)」という表現には、特に明記する場合を除き、P≦Nの場合に付加される初期検査値(初期検査値(1)〜初期検査値(N)のいずれか)も含まれるものとして説明する。
【0123】
また、制御部510は、送信バッファ530に保持されたデータを送信回路540へ出力させ、送信回路540から演出制御部120へ直ちに送信させる。具体的には、制御部510は、送信バッファ530に保持された制御コマンドおよび誤り検査値を送信回路540へ転送させるための制御信号(以下、「送信許可信号」という)を、送信バッファ530へ出力し、送信バッファ530に保持された誤り検査値付きの制御コマンドを送信回路540へ転送させ、送信回路540から演出制御部120へ直ちに送信させる。送信許可信号の出力タイミングは、例えば、メインCPU110aが送信バッファ530へ出力する制御コマンドの書き込み信号に同期させるように設定しておけばよい。
【0124】
生成回路521は、入力されたデータを予め設定された誤り検査値生成のための演算方式(以下、「生成方式」という)で演算して誤り検査値を生成し、出力する回路である。具体的には、生成回路521は、メインCPU110aが出力した制御コマンドを入力するように接続されており、入力した制御コマンドを生成回路521の生成方式で演算し、誤り検査値を生成する。生成方式は、主制御部110と演出制御部120との間で予め取り決めてあれば、特に限定されない。生成方式は、例えば、チェックサム方式、CRC方式、奇数パリティ方式、偶数パリティ方式、群計数チェック方式、垂直パリティ方式、水平パリティ方式、またはハミング符号方式等の公知の方式を用いることができる。
【0125】
また、生成回路521は、メインCPU110aが出力した制御コマンドをそのまま入力し、演算するように構成することもできるし、メインCPU110aが出力した制御コマンドの一部だけを入力し、演算するように構成することもできる。例えば、制御コマンドは、本実施形態では、後述するように1バイトの「MODE」の情報と1バイトの「DATA」の情報とから構成されているが、出力された制御コマンドの「MODE」の情報のみを入力し、演算するように構成することができる。
【0126】
格納回路522は、制御部510や生成回路521から出力されたデータを格納しておく記憶回路であり、メインROM110bから出力された固有情報が格納される初期検査値格納領域と、生成回路521から出力された誤り検査値が格納される格納領域とを少なくとも備えている。格納領域には、生成回路521で生成および出力された誤り検査値を格納する記憶領域であって、少なくともN+1個以上の誤り検査値を格納することができるように設けられている。また、初期検査値格納領域は、格納領域に格納された誤り検査値の代わりに用いる固有情報を格納する記憶領域であって、N個以上の固有情報を格納することができるように設けられている。そして、格納回路522は、制御部510から誤り検査値を書き込むための書き込み信号が出力されると、誤り検査値を内部バス550から取り込んで格納領域へ格納する。なお、本実施形態では、生成回路521から出力された誤り検査値は、その出力順序に対応して格納回路522の各格納領域へ格納される。
【0127】
また、格納回路522は、検査値付加処理において、制御部510から誤り検査値を読み出すための読み出し信号が出力されると、格納された誤り検査値を内部バス550へ出力するが、このとき、格納回路522が出力する誤り検査値は、アドレス設定部523から指定されたアドレスの格納領域に格納された誤り検査値である。アドレス設定部523は、制御部510と格納回路522との間に設けられており、制御部510から受け取ったアドレスデータに対応する格納回路522の格納領域を作動させ、当該格納領域に格納された誤り検査値を内部バス550へ出力させるための制御信号(以下、「セレクト信号」という)を出力する。格納回路522は、このセレクト信号によって指定された格納領域の誤り検査値を内部バス550へ出力することができる。
【0128】
制御部510からアドレス設定部523へ出力されるアドレスデータは、検査値付加処理において、格納回路522から出力され送信バッファ530へ書き込まれるべき誤り検査値の格納場所を示すものである。このアドレスデータは、現にメインCPU110aから送信バッファ530へ書き込まれた制御コマンド(P)に対して、付加プロトコル設定処理にて設定された遡及数Nの関係を満たす誤り検査値(P−N)が格納された格納場所のアドレスデータである。メインCPU110aから出力された制御コマンド(P)は、送信バッファ530へ書き込まれると同時に生成回路521へ入力され、生成回路521から誤り検査値(P)が格納回路522へ出力される。本実施形態では、生成回路521から出力された誤り検査値(P)は、その出力順序に対応して格納回路522の各格納領域へ格納される。よって、上記アドレスデータは、現に生成回路521から出力された誤り検査値(P)が格納される格納領域(P)に対する相対アドレスであって、格納領域(P)から遡及数N個前の格納領域(P−N)を指定するアドレスデータとしておけばよい。
【0129】
判定回路524は、メインCPU110aから送信バッファ530へ出力された制御コマンドが、上記変更条件を満たす制御コマンドであるか否かを判定する回路である。具体的には、判定回路524は、メインCPU110aから出力された制御コマンドを入力するように接続されており、上記変更条件を満たす制御コマンドであるか否かを判定し、得られた結果に基づく判定結果信号を制御部510へ出力する。判定回路524には、変更条件を予め記憶させておく変更条件記憶器(図示せず)と、入力した制御コマンドと変更条件とを比較し得られた結果を判定結果信号として出力する比較器(図示せず)とを少なくとも備えている。
【0130】
本実施形態では、変更条件は、メインCPU110aから出力された制御コマンドの種別が、予め定めた所定の制御コマンドの種別に該当するか否かである。よって、変更条件記憶器は、レジスタなどで構成しておき、所定の制御コマンドのビットパターンを記憶しておけばよい。なお、本実施形態では、制御コマンドは、後述するように1バイトの「MODE」の情報と1バイトの「DATA」の情報とから構成されているが、変更条件は、例えば、メインCPU110a出力された制御コマンドの「MODE」の情報のみを用いてもよい。
【0131】
また、比較器は、変更条件記憶器と同等以上のビット数を比較可能なイコールコンパレータやマグニチュードコンパレータなどで構成しておけばよい。また、比較器は、入力された制御コマンドと変更条件とを比較し、両者が一致すれば、入力された制御コマンドが変更条件を満たす制御コマンドであることを示す判定結果信号を出力し、両者が一致しなければ、入力された制御コマンドが変更条件を満たす制御コマンドでないことを示す判定結果信号を出力する。出力された判定結果信号は、制御部510へ入力される。制御部510は、判定結果信号の内容を確認し、メインCPU110aから変更条件を満たす制御コマンドが現に出力されたか否かを判断することができる。
【0132】
なお、判定回路524の判定対象は、メインCPU110aから出力された制御コマンドそのものとしなくてもよい。例えば、判定回路524を生成回路521の出力側に接続して、メインCPU110aから出力された制御コマンドの誤り検査値を判定対象とすることもできる。このとき、変更条件記憶器には、例えば、所定の制御コマンドから生成された誤り検査値のビットパターンを記憶させておけばよい。もっとも、変更条件は、上述したように基本的に任意であり、変更条件記憶器には、単に所定値を記憶させておいてもよい。いずれにしても、制御部510は、判定回路524から出力される判定結果信号により、メインCPU110aから変更条件を満たす制御コマンドが現に出力されたか否かを判断することができる。そして、制御部510は、メインCPU110aが現に出力した制御コマンドに基づいて、誤り検査値の付加プロトコルを変更するか否かを決定することができる。
【0133】
送信バッファ530は、演出制御部120へ送信するデータを一時的に保持するためのバッファ回路である。具体的には、送信バッファ530は、メインCPU110aが出力した、今回送信すべき制御コマンドを送信バッファ530へ書き込むための書き込み信号が入力されると、当該書き込み信号に対応した制御コマンドを、内部バス550を介して取り込む。また、送信バッファ530は、制御部510が出力した、上記制御コマンドに付加すべき誤り検査値を送信バッファ530へ書き込むための書き込み信号が入力されると、当該書き込み信号に対応した誤り検査値を、内部バス550を介して取り込む。そして、送信バッファ530は、制御部510からの送信許可信号が入力されるまで取り込んだ制御コマンドおよび誤り検査値を一時的に保持し、送信許可信号が入力されると保持したデータを送信回路540へ直ちに受け渡す。
【0134】
送信回路540は、演出制御部120へ送信するデータを、主制御部110と演出制御部120との間のデータ伝送形式(シリアル伝送形式やパラレル伝送形式)に対応したデータ形式へ変換する機能などを備えている。そして、送信回路540は、送信バッファ530から受け渡されたデータに上記変換処理等を施して送信データとし、演出制御部120へ直ちに送信する。
【0135】
上述のように構成された、主制御部110の認証処理に関する各構成部の動作について概説する。
【0136】
遊技機1に電源が投入されると、主制御部110にシステムリセットが発生し、メインCPU110aは、ブートROM110dに予め記憶されたブート処理用プログラムに基づいて、主制御部110のブート処理を行う。ブート処理の中で、メインCPU110aは、主制御部110のハードウェア設定項目の一つとして、メインROM110bに予め記憶された送信部500に関する初期値を送信部500に設定する。その際、メインCPU110aは、送信部500に関する初期値の一つである生成パラメータを送信部500に設定する生成パラメータ設定処理を行う。生成パラメータ設定処理において、メインCPU110aは、生成パラメータ設定処理において、メインROM110bから生成パラメータを取り込み、制御部510の生成パラメータ用記憶領域へセットする。
【0137】
次に、送信部500は、付加プロトコル設定処理を行う。具体的には、制御部510は、自身が保持するアルゴリズムに従って、生成パラメータ用記憶領域にセットされた生成パラメータが、遡及数Nを担う複数の遡及数のうち、どの遡及数に対応した値であるかを確認し、セットされた生成パラメータに対応する遡及数Nを遡及数記憶領域(N)にセットする。そして、制御部510は、遡及数記憶領域(N)にセットされた遡及数Nに対応したアドレスデータが、アドレス設定部523へ出力されるように設定する。
【0138】
その後、主制御部110のブート処理が終了すると、メインCPU110aは、メインROM110bに記憶された遊技処理用プログラムに基づき遊技進行に係る処理を行う。そして、メインCPU110aは、制御コマンドを送信するタイミングとなると、制御コマンド送信処理を行う。
【0139】
具体的には、まず、メインCPU110aは、制御コマンドを構成するために必要なデータをメインROM110bから読み出すとともに、読み出したデータを用いて今回送信する制御コマンド(P)を構成し、メインRAM110cの送信データ用記憶領域にセットする。そして、メインCPU110aは、制御コマンドの送信タイミングとなると、送信データ用記憶領域にセットされた制御コマンド(P)を、送信バッファ530へセットする。
【0140】
このとき、メインCPU110aは、送信データ用記憶領域にセットされた制御コマンド(P)を送信バッファ530へ書き込むための書き込み信号を出力するが、当該書き込み信号が制御部510へ入力される。制御部510は、当該書き込み信号の入力が上記検知手段にて検知されると、生成個数記憶領域(P)の値を更新する。また、このとき、送信バッファ530へセットされた制御コマンド(P)が、生成回路521および判定回路524へ入力される。そして、これらの入力の検知を契機として、送信部500の各構成部は、自身が保持するアルゴリズムに従って、検査値生成処理および検査値付加処理を実行する。
【0141】
生成回路521は、検査値生成処理として、入力された制御コマンド(P)に対して予め設定された生成方式にて誤り検査値(P)を生成する。そして、生成された誤り検査値(P)は、そのまま格納回路522へ受け渡され、格納回路522の格納領域(P)に格納される。また、判定回路524は、入力された制御コマンド(P)が変更条件を満たす制御コマンドであるか否かを判定し、判定結果信号を制御部510へ出力する。
【0142】
次に、制御部510は、付加プロトコル設定処理にて設定された付加プロトコルに基づいて、検査値付加処理を行う。制御部510は、判定結果信号の内容を確認し、送信バッファ530へセットされた制御コマンド(P)が変更条件を満たす制御コマンドであれば、変更タイミング情報記憶領域(Mi)に変更タイミング情報Miを記憶する。また、制御部510は、生成個数記憶領域(P)の値と変更タイミング情報記憶領域(Mi)の値とを比較し、現在が変更タイミングであるか否かを判断する。変更タイミングであれば、遡及数記憶領域(N)の値を変更する。また、制御部510は、生成個数記憶領域(P)の値と遡及数記憶領域(N)の値とを比較し、現在付加すべき誤り検査値が初期検査値か否かを判断する。現在付加すべき誤り検査値が初期検査値であれば、制御部510は、メインROM110bから固有情報を読み出し、格納回路522の初期検査値格納領域にセットする。なお、以下では、現在付加すべき誤り検査値は、初期検査値でないとして説明する。
【0143】
制御部510は、付加すべき誤り検査値が格納された格納領域(P−N)を指定するアドレスデータをアドレス設定部523へ出力する。アドレス設定部523では、制御部510より出力されたアドレスデータが示す、格納領域(P−N)へのセレクト信号を出力する。格納回路522は、上記セレクト信号が指定する格納領域(P−N)に格納された誤り検査値(P−N)を、送信バッファ530へセットする。
【0144】
次に、制御部510は、上記検知手段での検知を契機として、予め定められた制御コマンドの送信タイミングで、送信バッファ530へ送信許可信号を出力する。送信バッファ530は、制御部510から送信許可信号が入力されると、セットされた制御コマンド(P)および誤り検査値(P−N)を、送信回路540へ直ちに受け渡す。送信回路540は、送信バッファ530から受け渡された制御コマンド(P)および誤り検査値(P−N)に上記変換処理等を施して送信データとし、演出制御部120へ直ちに送信する。このようにして、主制御部110を構成する送信部500から誤り検査値付きの制御コマンドが演出制御部120へ送信されることとなる。
【0145】
その後、主制御部110を構成する送信部500から送信された制御コマンド(P)は、演出制御部120を構成する受信部600にて受信される。
図8に、本実施形態に係る演出制御部120の認証処理に関する機能ブロックを示す。
演出制御部120は、認証処理に関する機能として、受信部600と、検査部610と、検査値生成部620と、を少なくとも有している。さらに、検査値生成部620は、誤り検査値を生成する生成部621と、生成した誤り検査値を格納する格納部622と、検査部610にて検査する対象となる誤り検査値を決定する決定部623との機能を少なくとも有している。
【0146】
受信部600は、主制御部110からの送信データに上記変換処理に対応する処理等を施して制御コマンド(P)とし、自身の受信バッファに記憶する機能を有するものである。また、受信部600は、制御コマンド(P)の受信割込要求があった旨を示す信号を出力したり、制御コマンド(P)の受信が完了したことを示すフラグを立てたりして、サブCPU120aが、主制御部110から送信された制御コマンド(P)の受信が完了したことを検知できるようにする機能を有するものである。
【0147】
また、受信部600は、受信した誤り検査値付きの制御コマンド(P)から、付加された誤り検査値(P−N)を抽出して検査部610へ出力するとともに、誤り検査値(P−N)を抽出後の制御コマンド(P)を検査値生成部620へ出力する機能を有するものである。なお、受信部600の機能を実現する具体的な手段は、図4に示すサブCPU120aの一部、サブROM120bの一部、サブRAM120cの一部、およびコマンド受信用入力ポート(図示せず)等から構成することができる。
【0148】
検査値生成部620は、生成部621によって、受信部600から出力された制御コマンド(P)を用いて誤り検査値(P)を生成する機能を有するものであり、この機能で生成された誤り検査値は、受信した制御コマンド(P)の正当性を検証するために用いられる。また、検査値生成部620は、生成部621で生成した複数の誤り検査値(P)を格納部622に格納する機能を有するものである。また、検査値生成部620は、決定部623によって決定された誤り検査値の出力手順(以下、「出力プロトコル」という)に基づいて、過去に格納部622にて格納しておいた誤り検査値(P−N)を、検査部610へ出力する機能を有するものである。
【0149】
検査値生成部620が有する、過去に生成し格納部622に格納しておいた誤り検査値を検査部610へ出力する機能(以下、「誤り検査値出力機能」という)は、主制御部110が有する誤り検査値付加機能と同様のものであり、その出力プロトコルは、主制御部110の遡及数Nに相当する値によって定義される。また、検査値生成部620は、主制御部110と同様に、誤り検査値出力機能を予め複数有している。誤り検査値出力機能に対する選択情報も、主制御部110の生成パラメータと同様のものである。そして、これら演出制御部120の誤り検査値出力機能およびその選択情報は、予め主制御部110と演出制御部120との間で取り決められている。
【0150】
とりわけ、決定部623が、受信部600にて受信した制御コマンド(P)に基づいて出力プロトコルを変更し、検査部610へ出力すべき誤り検査値を決定する機能においても、主制御部110の送信部500が有する誤り検査値の付加プロトコルを変更する機能と同様のものである。すなわち、決定部623は、制御コマンドの種別を判定する機能(主制御部110の判定回路524に相当)、判定結果に応じて出力プロトコルを決定する機能(主制御部110の制御部510に相当)、および決定した出力プロトコルに従って格納部622に格納された誤り検査値を検査部610へ出力する機能(主制御部110の制御部510に相当)を有している。そして、決定部623の機能を実現するために、サブRAM120cには、主制御部110の変更条件記憶器に相当する記憶領域や、主制御部110の生成個数記憶領域(P)に相当する受信個数記憶領域(P)が設けられている。遡及数記憶領域(N)、変更タイミング情報記憶領域(Mi)も同様である。
【0151】
また、格納部622においても、主制御部110の格納回路522と同様に、格納領域と初期検査値格納領域とを有し、初期検査値格納領域には、N個の固有情報が予め格納されている。そして、P≦Nの場合には、受信した制御コマンド(1)〜制御コマンド(N)に対応する初期検査値(1)〜初期検査値(N)のいずれかを検査部610へ出力する。このとき、遊技機1のリセット時等、主制御部110または演出制御部120が初期化され、格納部622に格納されていた過去の誤り検査値がクリアされた場合には、サブROM120bから固有情報を読み出し、初期検査値格納領域に格納する。なお、生成部621、格納部622、および決定部623の機能を実現する具体的な手段は、図4に示すサブCPU120aの一部、サブROM120bの一部、サブRAM120cの一部等から構成することができる。
【0152】
検査部610は、受信部600から出力された誤り検査値と、検査値生成部620の格納部622から出力された誤り検査値とを照合する誤り検査処理を行う機能を有するものである。誤り検査処理では、受信部600から出力された誤り検査値と、格納部622から出力された誤り検査値とを比較し、共に誤り検査値(P−N)で一致する場合は、検査結果は正常であると判断され、一致しない場合は、検査結果は正常でないと判断される。
【0153】
検査結果が正常と判断された場合、検査部610は、今回受信した誤り検査値(P−N)が付加された制御コマンド(P)、および今回の誤り検査値(P−N)の生成元であるN個前の制御コマンド(P−N)の正当性を認証し、主制御部110の正当性を認証することができたと判断する。そして、受信した制御コマンド(P)をサブRAM120cの受信データ用記憶領域へ出力し、制御コマンド(P)に応じた処理が行われる。検査結果が正常と判断されなかった場合は、検査部610は、不正行為等が発生したおそれがあると判断し、報知信号を出力する。なお、検査部610の機能を実現する具体的な手段は、図4に示すサブCPU120aの一部、サブROM120bの一部、サブRAM120cの一部等から構成することができる。
【0154】
[制御コマンドの説明]
以下、本発明の実施形態に係る遊技機1の主制御部110から演出制御部120に対して送信される制御コマンドの種別について説明する。
図9は、本実施形態に係る遊技機1を構成する主制御部110から演出制御部120へ送信される制御コマンドの種別を示す図である。なお、図9に示された制御コマンドは一例であり、本発明に係る制御コマンドはこれに限定されるものではない。
【0155】
主制御部110から演出制御部120へ送信される制御コマンドは、1コマンドが2バイトのデータで構成されており、制御コマンドの分類を識別するための1バイトの「MODE」の情報と、各制御コマンドの詳細な制御内容を示す1バイトの「DATA」の情報とから構成されている。「MODE」の情報と「DATA」の情報は、上記のようにメインROM110bに予め記憶されている。なお、本実施形態では、制御コマンドには誤り検査値が付加され、誤り検査値付きの制御コマンドとして演出制御部120に送信されるが、以下の説明において、「制御コマンドを送信する」との表現には、制御コマンドに誤り検査値を付加して送信することが含まれる。
【0156】
「演出図柄指定コマンド」は、停止表示される特別図柄の種別を示すものであり、「MODE」の情報が「E0H」で設定され、特別図柄の種別に合わせて「DATA」の情報が設定されている。なお、特別図柄の種別が結果的に大当たりの種別や遊技状態を決定するものであるから、演出図柄指定コマンドは、大当たりの種別や、遊技状態を示すものともいえる。
この演出図柄指定コマンドは、各種の特別図柄が決定され、特別図柄の変動表示が開始されるときに、決定された特別図柄に対応する演出図柄指定コマンドが演出制御部120に送信される。具体的には、大当たりの抽選結果を判定し特別図柄各種の特別図柄が決定され特別図柄の変動表示が開始されるときに、決定された特別図柄に対応する演出図柄指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。その後、送信データ用記憶領域にセットされている演出図柄指定コマンドは、コマンド送信処理により、誤り検査値を付加されて演出制御部120へ送信されることになる。以下、他の制御コマンドも同様にして演出制御部120へ送信される。
なお、演出図柄指定コマンド等と関連する大当たりの抽選に関する処理については後述する。
【0157】
ここで、演出図柄指定コマンドのうち、「DATA」の情報が「00H」で設定される「ハズレ演出図柄指定コマンド」は、抽選結果がハズレの場合に、ハズレの結果を停止表示させるための制御コマンドである。すなわち、ハズレ演出図柄指定コマンド、抽選結果がハズレの場合に、主制御部110から演出制御部120に必ず送信される制御コマンドである。以下、ハズレ演出図柄指定コマンドを、ハズレの際の処理を実行させるコマンドとして、「ハズレコマンド」ともいう。
【0158】
「第1特別図柄記憶指定コマンド」は、第1特別図柄保留数(U1)記憶領域に記憶されている保留記憶数を示すものであり、「MODE」の情報が「E1H」で設定され、保留記憶数に合わせて「DATA」の情報が設定されている。
この第1特別図柄記憶指定コマンドは、第1特別図柄保留数(U1)記憶領域に記憶されている保留記憶数が切り替わるときに、保留記憶数に対応する第1特別図柄記憶指定コマンドが演出制御部120に送信される。具体的には、第1始動口14への入球や大当たりの抽選結果の判定に際し第1特別図柄保留数(U1)記憶領域に記憶されている値が増減したときに、増減後の保留記憶数に対応する第1特別図柄記憶指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
【0159】
「第2特別図柄記憶指定コマンド」は、第2特別図柄保留数(U2)記憶領域に記憶されている保留記憶数を示すものであり、「MODE」の情報が「E2H」で設定され、保留記憶数に合わせて「DATA」の情報が設定されている。
この第2特別図柄記憶指定コマンドは、第2特別図柄保留数(U2)記憶領域に記憶されている保留記憶数が切り替わるときに、保留記憶数に対応する第2特別図柄記憶指定コマンドが演出制御部120に送信される。具体的には、第2始動口15への入球や大当たりの抽選結果の判定に際し第2特別図柄保留数(U2)記憶領域に記憶されている値が増減したときに、増減後の保留記憶数に対応する第2特別図柄記憶指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、本実施形態では、「第1特別図柄記憶指定コマンド」と「第2特別図柄記憶指定コマンド」とをまとめて「特別図柄記憶指定コマンド」ともいう。
【0160】
「図柄確定コマンド」は、特別図柄が停止表示されていることを示すものであり、「MODE」の情報が「E3H」で設定され、「DATA」の情報が「00H」に設定されている。
この図柄確定コマンドは、特別図柄が停止表示されているときに演出制御部120に送信される。具体的には、大当たりの抽選結果を判定し特別図柄の変動時間が経過した後に、特別図柄を第1特別図柄表示装置20または第2特別図柄表示装置21に停止表示させるときに、図柄確定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
【0161】
「電源投入時指定コマンド」は、遊技機1の電源が投入されたことを示すものであり、「MODE」の情報が「E4H」で設定され、「DATA」の情報が「00H」に設定されている。
この電源投入時指定コマンドは、遊技機1の電源が投入されたときに演出制御部120に送信される。遊技機1の電源が投入され主制御部110の初期化処理が行われる際に、電源遮断時(以下、「電断時」という)に生成したメインRAM110cのバックアップ情報が有効でない場合は、メインRAM110cの作業領域がクリアされ、新たに作業領域の設定が行われる。その後、電源投入時指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、電源投入時指定コマンド等と関連する初期化処理については後述する。
【0162】
「RAMクリア指定コマンド」は、メインRAM110cに記憶された情報がクリアされたことを示すものであり、「MODE」の情報が「E4H」で設定され、「DATA」の情報が「01H」に設定されている。
遊技機1の裏側には図示しないRAMクリアボタンが設けられており、RAMクリアボタンを押下しながら遊技機1の電源を投入すると、主制御部110にシステムリセットが発生し初期化処理が行われる。そして、メインRAM110cの作業領域がクリアされ新たに作業領域の設定が行われ電源投入時指定コマンドを送信した後に、RAMクリア指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
【0163】
「電源復旧指定コマンド」は、遊技機1の電源が投入されて、正常に復旧したことを示すものであり、「MODE」の情報が「E4H」で設定され、電断時の遊技状態別に合わせて「DATA」の情報が設定されている。
この電源復旧指定コマンドは、遊技機1の電源が投入されて、正常に復旧したときに演出制御部120に送信される。具体的には、遊技機1の電源が投入され初期化処理が行われる際に、電断時に生成したメインRAM110cのバックアップ情報が有効である場合は、バックアップ情報が示す遊技状態に応じた電源復旧指定コマンドを生成し、生成した電源復旧指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
【0164】
なお、電源投入時に、電源投入時指定コマンド、RAMクリア指定コマンド、電源復旧指定コマンドのいずれか少なくとも1つが主制御部110から演出制御部120へ送信される。すなわち、「MODE」の情報が「E4H」で設定される上記の制御コマンド群は、電源投入時の処理を実行させるコマンドである。以下、「MODE」の情報が「E4H」で設定される上記の制御コマンド群を、「電源投入コマンド」ともいう。
【0165】
「デモ指定コマンド」は、第1特別図柄表示装置20または第2特別図柄表示装置21が作動していないことを示すものであり、「MODE」の情報が「E5H」で設定され、「DATA」の情報が「00H」に設定されている。
このデモ指定コマンドは、第1特別図柄表示装置20または第2特別図柄表示装置21の特別図柄の保留記憶がなく、遊技者による操作がない非遊技状態が所定の時間経過したときに、演出制御部120に送信される。具体的には、大当たりの抽選、特別電動役物、遊技状態の制御を行うに際し、第1特別図柄保留数(U1)記憶領域または第2特別図柄保留数(U2)記憶領域のいずれの記憶領域にも1以上のデータがセットされていない状態が所定の時間継続したときに、デモ指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
【0166】
なお、デモ指定コマンドは、第1特別図柄表示装置20または第2特別図柄表示装置21の特別図柄の保留記憶がないとき直ちに送信するようにしてもよい。この場合、演出制御部120は、デモ指定コマンドを受信した後、他の制御コマンドを所定時間受信しなかった場合、すなわち非遊技状態が所定時間経過した場合にデモ演出を実行する。
【0167】
「第1特別図柄用変動パターン指定コマンド」は、第1特別図柄表示装置20における特別図柄の変動時間(変動態様)を示すものであり、「MODE」の情報が「E6H」で設定され、各種の変動パターンに合わせて「DATA」の情報が設定されている。
この第1特別図柄用変動パターン指定コマンドは、第1特別図柄表示装置20の特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第1特別図柄用変動パターン指定コマンドが演出制御部120に送信される。具体的には、大当たりの抽選結果を判定し特別図柄の変動パターンが決定され特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第1特別図柄用変動パターン指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
【0168】
「第2特別図柄用変動パターン指定コマンド」は、第2特別図柄表示装置21における特別図柄の変動時間(変動態様)を示すものであり、「MODE」の情報が「E7H」で設定され、各種の変動パターンに合わせて「DATA」の情報が設定されている。
この第2特別図柄用変動パターン指定コマンドは、第2特別図柄表示装置21の特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第2特別図柄用変動パターン指定コマンドが演出制御部120に送信される。具体的には、大当たりの抽選結果を判定し特別図柄の変動パターンが決定され特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第2特別図柄用変動パターン指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、本実施形態では、「第1特別図柄用変動パターン指定コマンド」と「第2特別図柄用変動パターン指定コマンド」とをまとめて、「変動パターン指定コマンド」という。
【0169】
ここで、変動パターン指定コマンドのうち、「DATA」の情報が「01H」、「02H」、「03H」、「04H」、「05H」で設定される制御コマンド群は、リーチ演出を実行させる制御コマンドである。以下、「MODE」の情報が「E6H」で設定され、かつ「DATA」の情報が「01H」〜「05H」で設定される制御コマンド群を、「リーチコマンド」ともいう。
【0170】
「大入賞口開放指定コマンド」は、各種大当たりの種別に合わせた大当たりのラウンド数を示すものであり、「MODE」の情報が「EAH」で設定され、大当たりのラウンド数に合わせて「DATA」の情報が設定されている。
この大入賞口開放指定コマンドは、大当たりラウンドが開始されるときに、開始されたラウンド数に対応する大入賞口開放指定コマンドが演出制御部120に送信される。具体的には、大当たり遊技処理において第1大入賞口開閉扉16b(または第2大入賞口開閉扉17b)を開放させるときに、開放させるときのラウンド数に対応する大入賞口開放指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、「MODE」の情報が「EAH」で設定されるコマンド群は、大当たり中の各ラウンドに対応する処理を実行させるコマンドである。以下、「MODE」の情報が「EAH」で設定されるコマンド群を、「大当たりコマンド」ともいう。
【0171】
「オープニング指定コマンド」は、各種の大当たりが開始することを示すものであり、「MODE」の情報が「EBH」で設定され、大当たりの種別に合わせて「DATA」の情報が設定されている。
このオープニング指定コマンドは、各種の大当たりが開始するときに、大当たりの種別に対応するオープニング指定コマンドが演出制御部120に送信される。具体的には、大当たり遊技処理の開始のときに、大当たりの種別に対応するオープニング指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、「MODE」の情報が「EBH」で設定されるコマンド群は、大当たり状態の処理を開始させるコマンドである。以下、「MODE」の情報が「EBH」で設定されるコマンド群を、「大当たり開始コマンド」ともいう。
【0172】
「エンディング指定コマンド」は、各種の大当たりが終了したことを示すものであり、「MODE」の情報が「ECH」で設定され、大当たりの種別に合わせて「DATA」の情報が設定されている。
このエンディング指定コマンドは、各種の大当たりが終了するときに、大当たりの種別に対応するエンディング指定コマンドが演出制御部120に送信される。具体的には、大当たり遊技終了処理の開始のときに、大当たりの種別に対応するエンディング指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
なお、「MODE」の情報が「ECH」で設定されるコマンド群は、大当たり状態の処理を終了させるコマンドである。以下、「MODE」の情報が「ECH」で設定されるコマンド群を、「大当たり終了コマンド」ともいう。
【0173】
「遊技状態指定コマンド」は、遊技状態の内容を示すものであり、「MODE」の情報が「EDH」で設定され、遊技状態の内容に合わせて「DATA」の情報が設定されている。
この遊技状態指定コマンドは、特別図柄の変動開始時および変動終了時に遊技状態指定コマンドが演出制御部120に送信される。具体的には、特別図柄の変動開始時および変動終了時などによって、遊技状態記憶領域や高確率遊技回数カウンタなどの現在の遊技状態を示すデータを記憶した各種記憶領域の値が変化したときに、現在の遊技状態に対応する遊技状態指定コマンドがメインRAM110cの送信データ用記憶領域にセットされる。
【0174】
[主制御部の制御処理]
以下、本発明の実施形態に係る遊技機1の主制御部110の制御処理について説明する。まず、主制御部110のメイン処理について説明する。
図10は、本実施形態に係る主制御部110によるメイン処理を示すフローチャートである。
【0175】
遊技機1に電源が投入され、電源部170により電源が供給されると、主制御部110にシステムリセットが発生し、メインCPU110aは、初期化処理(図10のステップS1〜ステップS17までの処理)および乱数値更新処理(図10のステップS20およびステップS30の処理)を行う。
【0176】
ステップS1において、メインCPU110aは、主制御部110の初期化処理の前提としてブート処理を行う。このブート処理において、メインCPU110aは、自身の自己診断処理や、内蔵回路や周辺回路等の初期化および初期値の設定を行う。なお、ブート処理の詳細については後述する。
ステップS2において、メインCPU110aは、メインRAM110cへのアクセスを許可に設定する。
ステップS3において、メインCPU110aは、RAMクリアスイッチがオンとなっているか判定し、RAMクリアスイッチがオンと判定された場合、RAMクリアを行うためステップS10に処理を移す。一方、RAMクリアスイッチがオンと判定されなかた場合には、ステップS4に処理を移す。
【0177】
ステップS4において、メインCPU110aは、電源投入時のメインRAM110cの所定の記憶領域におけるチェックサムを生成する。
ステップS5において、メインCPU110aは、生成したチェックサムと、電断時に生成したメインRAM110cの所定の記憶領域におけるチェックサムとを比較する。ここで、一致していれば正常と判定し、ステップS6に処理を移し、一致していなければエラーと判定し、ステップS10に処理を移す。
ステップS6において、メインCPU110aは、演出制御部120をはじめとした周辺部300との間で、起動後の動作の開始タイミングを調整する。具体的には、周辺部300がすべて起動し安定状態となってから演出処理等をほぼ同じタイミングで開始できるように、一定時間だけ待機する。
【0178】
ステップS7において、メインCPU110aは、電断からの復旧に際して初期値を必要とするメインRAM110cの作業領域に初期値を設定し、バックアップが有効である場合のRAMの設定処理を行う。
ステップS8において、メインCPU110aは、電断時の遊技状態に復旧すべく、電断時に生成したメインRAM110cのバックアップ情報を読み込む。具体的には、バックアップされているメインRAM110cの遊技状態記憶領域から遊技状態の情報を読み込む。
ステップS9において、メインCPU110aは、読み込んだ遊技状態の情報に基づいて電源復旧指定コマンドを決定し、決定した電源復旧指定コマンドをメインRAM110cの送信データ用記憶領域にセットする。
【0179】
ステップS10において、メインCPU110aは、上記ステップS6と同様に周辺部300との間でのタイミング調整を行う。
ステップS11において、メインCPU110aは、メインRAM110cの使用領域をクリアする。
ステップS12において、メインCPU110aは、各種乱数値の初期値の設定をはじめとする、遊技機1の初期化に際して初期値を必要とするメインRAM110cの作業領域に初期値を設定し、バックアップが有効でない場合のメインRAM110cの設定処理を行う。
【0180】
ステップS13において、メインCPU110aは、電源投入時指定コマンドを生成し、生成した電源投入時指定コマンドをメインRAM110cの送信データ用記憶領域にセットする。
ステップS14において、メインCPU110aは、送信データ用記憶領域にセットされている制御コマンドを演出制御部120に送信するコマンド送信処理を行う。すなわち、電源投入時指定コマンドを演出制御部120に送信する。なお、本ステップS14およびステップS16のコマンド送信処理は、上記検査値生成処理および上記検査値付加処理を伴う。さらに、この検査値付加処理では、格納回路522の初期検査値格納領域への上記固有情報の設定処理を伴う。コマンド送信処理の詳細については後述する。
【0181】
ステップS15において、メインCPU110aは、RAMクリア指定コマンドを生成し、生成したRAMクリア指定コマンドをメインRAM110cの送信データ用記憶領域にセットする。
ステップS16において、メインCPU110aは、メインRAM110cの送信データ用記憶領域にセットされている制御コマンドを演出制御部120に送信するコマンド送信処理を行う。すなわち、電源復旧指定コマンドまたはRAMクリア指定コマンドのいずれかの制御コマンドを演出制御部120に送信する。
ステップS17において、メインCPU110aは、割込許可の設定をするとともに、タイマ割込プログラムの実行周期(α、例えば4ミリ秒)を設定する。
【0182】
なお、ステップS14およびステップS16のコマンド送信処理は、本ステップS17での割込許可後に行われるタイマ割込処理の中で行ってもよい。このとき、各制御コマンドの送信順番が前後しないよう予め取り決めておく。
【0183】
ステップS20において、メインCPU110aは、特別図柄の変動態様(変動時間)を決定するためのリーチ判定用乱数値および特図変動用乱数値を更新する演出用乱数値更新処理を行う。
ステップS30において、メインCPU110aは、特別図柄判定用初期乱数値、大当たり図柄用初期乱数値、小当たり図柄用初期値乱数値、普通図柄判定用初期乱数値を更新する初期乱数値更新処理を行う。その後、所定の割込処理が行われるまで、ステップS20とステップS30との処理を繰り返し行う。
【0184】
次に、主制御部110の割込処理について説明する。
図11は、本実施形態に係る主制御部110による割込処理を示すフローチャートである。
メインCPU110aは、主制御部110に設けられたクロックパルス発生回路(図示せず)から出力されるクロック信号に基づいて、所定の周期(α)ごとに、主制御部110のタイマ割込処理を実行する。
【0185】
まず、ステップS100において、メインCPU110aは、メインCPU110aのレジスタに記憶されている情報をスタック領域に退避させる。
【0186】
ステップS110において、メインCPU110aは、特別図柄時間カウンタの更新処理、特別電動役物の開放時間等などの特別遊技タイマカウンタの更新処理、普通図柄時間カウンタの更新処理、普電開放時間カウンタの更新処理等の各種タイマカウンタを更新する時間制御処理を行う。具体的には、特別図柄時間カウンタ、特別遊技タイマカウンタ、普通図柄時間カウンタ、普電開放時間カウンタから1を減算する処理を行う。
【0187】
ステップS120において、メインCPU110aは、特別図柄判定用乱数値、大当たり図柄用乱数値、小当たり図柄用乱数値、普通図柄判定用乱数値の乱数更新処理を行う。
具体的には、それぞれの乱数値および乱数カウンタに1を加算して更新する。なお、加算した乱数カウンタが乱数範囲の最大値を超えた場合(乱数カウンタが1周した場合)には、乱数カウンタを0に戻し、その時の初期乱数値からそれぞれの乱数値を新たに更新する。
【0188】
ステップS130において、メインCPU110aは、ステップS30と同様に、特別図柄判定用初期乱数値、大当たり図柄用初期乱数値、小当たり図柄用初期値乱数値、普通図柄判定用初期乱数値を更新する初期乱数値更新処理を行う。
【0189】
ステップS200において、メインCPU110aは、入力制御処理を行う。この処理において、メインCPU110aは、一般入賞口検出スイッチ12a、第1大入賞口検出スイッチ16a、第2大入賞口検出スイッチ17a、第1始動口検出スイッチ14a、第2始動口検出スイッチ15a、ゲート検出スイッチ13aの各スイッチに入力があったか否か判定する入力処理を行う。
【0190】
具体的には、一般入賞口検出スイッチ12a、第1大入賞口検出スイッチ16a、第2大入賞口検出スイッチ17a、第1始動口検出スイッチ14a、第2始動口検出スイッチ15aからの各種検出信号を入力した場合には、ぞれぞれの入賞口毎に設けられた賞球のために用いる賞球カウンタに所定のデータを加算して更新する。
【0191】
さらに、第1始動口検出スイッチ14aから検出信号を入力した場合には、第1特別図柄保留数(U1)記憶領域にセットされているデータが4未満であれば、第1特別図柄保留数(U1)記憶領域に1を加算し、特別図柄判定用乱数値、大当たり図柄用乱数値、小当たり図柄用乱数値、リーチ判定用乱数値および特図変動用乱数値を取得して、取得した各種乱数値を第1特別図柄乱数値記憶領域にある所定の記憶部(第0記憶部〜第4記憶部)に記憶する。
【0192】
同様に、第2始動口検出スイッチ15aから検出信号を入力した場合には、第2特別図柄保留数(U2)記憶領域にセットされているデータが4未満であれば、第2特別図柄保留数(U2)記憶領域に1を加算し、特別図柄判定用乱数値、大当たり図柄用乱数値、小当たり図柄用乱数値、リーチ判定用乱数値および特図変動用乱数値を取得して、取得した各種乱数値を第2特別図柄乱数値記憶領域にある所定の記憶部(第0記憶部〜第4記憶部)に記憶する。
【0193】
また、ゲート検出スイッチ13aから検出信号を入力した場合には、普通図柄保留数(G)記憶領域にセットされているデータが4未満であれば、普通図柄保留数(G)記憶領域に1を加算し、普通図柄判定用乱数値を取得して、取得した普通図柄判定用乱数値を普通図柄保留記憶領域にある所定の記憶部(第0記憶部〜第4記憶部)に記憶する。
【0194】
さらに、第1大入賞口検出スイッチ16aまたは第2大入賞口検出スイッチ17aからの検出信号を入力した場合には、第1大入賞口16または第2大入賞口17に入賞した遊技球を計数するための大入賞口入球数(C)記憶領域に1を加算して更新する。
【0195】
ステップS300において、メインCPU110aは、上記ステップS200での入力制御処理に基づいて、大当たりの抽選、特別電動役物、遊技状態の制御を行うための特別図柄・特別電動役物制御処理(以下、「特図特電制御処理」という)を行う。特図特電制御処理の詳細については、図12を用いて後述する。
【0196】
ステップS400において、メインCPU110aは、普通図柄の抽選、普通電動役物の制御を行うための普通図柄・普通電動役物制御処理(以下、「普図普電制御処理」という)を行う。
具体的には、まず普通図柄保留数(G)記憶領域に1以上のデータがセットされているか否かを判定し、普通図柄保留数(G)記憶領域に1以上のデータがセットされていなければ、今回の普図普電制御処理を終了する。
【0197】
普通図柄保留数(G)記憶領域に1以上のデータがセットされていれば、普通図柄保留数(G)記憶領域に記憶されている値から1を減算した後、普通図柄保留記憶領域にある第1記憶部〜第4記憶部に記憶された普通図柄判定用乱数値を1つ前の記憶部にシフトさせる。このとき、既に第0記憶部に書き込まれていた普通図柄判定用乱数値は上書きされて消去されることとなる。
そして、当たり判定テーブルを参照し、普通図柄保留記憶領域の第0記憶部に記憶された普通図柄判定用乱数値が「当たり」に対応する乱数値であるかどうかの判定する処理を行う。その後、普通図柄表示装置22において普通図柄の変動表示を行って、普通図柄の変動時間が経過すると普通図柄の抽選の結果に対応する普通図柄の停止表示を行う。そして、参照した普通図柄判定用乱数値が「当たり」のものであれば、始動口開閉ソレノイド15cを駆動させ、第2始動口15を所定の開放時間、第2の態様に制御する。
【0198】
ステップS500において、メインCPU110aは、払出制御処理を行う。この払出制御処理において、メインCPU110aは、ぞれぞれの賞球カウンタを参照し、各種入賞口に対応する払出個数指定コマンドを生成して、生成した払出個数指定コマンドを払出制御部130に送信する。
【0199】
ステップS600において、メインCPU110aは、外部情報データ、始動口開閉ソレノイドデータ、第1大入賞口開閉ソレノイドデータ、第2大入賞口開閉ソレノイドデータ、特別図柄表示装置データ、普通図柄表示装置データ、記憶数指定コマンドのデータ作成処理を行う。
【0200】
ステップS700において、メインCPU110aは、出力制御処理を行う。この処理において、ステップS600で作成した外部情報データ、始動口開閉ソレノイドデータ、第1大入賞口開閉ソレノイドデータ、第2大入賞口開閉ソレノイドデータの信号を出力させるポート出力処理を行う。
また、第1特別図柄表示装置20、第2特別図柄表示装置21および普通図柄表示装置22の各LEDを点灯させるために、上記S600で作成した特別図柄表示装置データと普通図柄表示装置データとを出力する表示装置出力処理を行う。
【0201】
ステップS710において、メインCPU110aは、メインRAM110cの送信データ用記憶領域にセットされている制御コマンドを演出制御部120へ送信するコマンド送信処理を行う。なお、本ステップS710のコマンド送信処理においても上記検査値生成処理および上記検査値付加処理を伴うが、詳細については後述する。
【0202】
ステップS800において、メインCPU110aは、ステップS100で退避した情報をメインCPU110aのレジスタに復帰させる。
【0203】
次に、主制御部110の特図特電制御処理を説明する。
図12は、本実施形態に係る主制御部110による特図特電制御処理を示すフローチャートである。
【0204】
ステップS301において、メインCPU110aは、特図特電処理データの値を読み込む。この「特図特電処理データ」は、特図特電制御処理の各サブルーチンが記憶された記憶領域のアドレスにそれぞれ割り当てられた値であり、特図特電処理データを参照することで、どのサブルーチンを処理するかを識別することができる。そして、特図特電処理データは、後述するように特図特電制御処理の各サブルーチンの中で必要に応じてセットされていき、その遊技において必要なサブルーチンが適宜処理されていくことになる。
【0205】
ステップS302において、メインCPU110aは、読み込んだ特図特電処理データから分岐アドレスを参照し、特図特電処理データ=0であれば特別図柄記憶判定処理(ステップS310)に処理を移し、特図特電処理データ=1であれば特別図柄変動処理(ステップS320)に処理を移し、特図特電処理データ=2であれば特別図柄停止処理(ステップS330)に処理を移し、特図特電処理データ=3であれば大当たり遊技処理(ステップS340)に処理を移し、特図特電処理データ=4であれば大当たり遊技終了処理(ステップS350)に処理を移し、特図特電処理データ=5であれば小当たり遊技処理(ステップS360)に処理を移す。
【0206】
ステップS310の特別図柄記憶判定処理においては、メインCPU110aは、大当たり判定処理、停止表示する特別図柄の決定をする特別図柄決定処理、特別図柄の変動時間を決定する変動時間決定処理等を行う。ここで、図13を用いて、特別図柄記憶判定処理の具体的な内容を説明する。
【0207】
図13は、本実施形態に係る主制御部110による特別図柄記憶判定処理におけるフローチャートである。
【0208】
ステップS311において、メインCPU110aは、第1特別図柄保留数(U1)記憶領域または第2特別図柄保留数(U2)記憶領域に1以上のデータがセットされているか否かを判定する。
そして、第1特別図柄保留数(U1)記憶領域または第2特別図柄保留数(U2)記憶領域のいずれの記憶領域にも1以上のデータがセットされていなければ、特図特電処理データ=0を保持したまま、今回の特別図柄変動処理を終了する。
一方、第1特別図柄保留数(U1)記憶領域または第2特別図柄保留数(U2)記憶領域に1以上のデータがセットされていれば、ステップS312に処理を移す。
【0209】
ステップS312において、メインCPU110aは、大当たり判定処理を行う。
具体的には、第2特別図柄保留数(U2)記憶領域に1以上のデータがセットされている場合には、第2特別図柄保留数(U2)記憶領域に記憶されている値から1を減算した後、第2特別図柄乱数値記憶領域にある第1記憶部〜第4記憶部に記憶された各種乱数値を1つ前の記憶部にシフトさせる。このとき、既に第0記憶部に書き込まれていた各種乱数値は上書きされて消去されることとなる。そして、大当たり判定テーブルを参照して、第2特別図柄乱数値記憶領域の第0記憶部に記憶された特別図柄判定用乱数値が「大当たり」に対応する乱数値であるか、「小当たり」に対応する乱数値であるかの判定を行う。
【0210】
また、第2特別図柄保留数(U2)記憶領域に1以上のデータがセットされておらず、第1特別図柄保留数(U1)記憶領域に1以上のデータがセットされている場合には、第1特別図柄保留数(U1)記憶領域に記憶されている値から1を減算した後、第1特別図柄乱数値記憶領域にある第1記憶部〜第4記憶部に記憶された各種乱数値を1つ前の記憶部にシフトさせる。このときにも、既に第0記憶部に書き込まれていた各種乱数値は上書きされて消去されることとなる。そして、大当たり判定テーブルを参照して、第1特別図柄乱数値記憶領域の第0記憶部に記憶された特別図柄判定用乱数値が「大当たり」に対応する乱数値であるか、「小当たり」に対応する乱数値であるかの判定を行う。
【0211】
本実施形態では、第1特別図柄乱数値記憶領域よりも第2特別図柄乱数値記憶領域に記憶された乱数値が優先してシフト(消化)されることになる。しかしながら、始動口に入賞した順序で、第1特別図柄記憶領域または第2特別図柄記憶領域をシフトさせてもよいし、第1特別図柄記憶領域を第2特別図柄記憶領域よりも優先させてシフトさせてもよい。
【0212】
ステップS313において、メインCPU110aは、停止表示する特別図柄の種類を決定するための特別図柄決定処理を行う。
この特別図柄決定処理では、上記大当たり判定処理(ステップS312)において「大当たり」と判定された場合には、図柄決定テーブルを参照して、第1特別図柄乱数値記憶領域の第0記憶部に記憶された大当たり図柄用乱数値に基づいて大当たり図柄(特別図柄1〜特別図柄6)を決定する。また、上記大当たり判定処理(ステップS312)において「小当たり」と判定された場合には、図柄決定テーブルを参照して、第1特別図柄乱数値記憶領域の第0記憶部に記憶された小当たり図柄用乱数値に基づいて小当たり図柄(特別図柄A、特別図柄B)を決定する。また、上記大当たり判定処理(ステップS312)において「ハズレ」と判定された場合には、図柄決定テーブルを参照して、ハズレ図柄(特別図柄0)を決定する。
そして、決定した特別図柄に対応する停止図柄データを停止図柄データ記憶領域に記憶する。
【0213】
ステップS314において、メインCPU110aは、特別図柄の変動時間決定処理を行う。
具体的には、変動パターン決定テーブルを参照して、第1特別図柄乱数値記憶領域の第0記憶部に記憶されたリーチ判定用乱数値および特図変動用乱数値に基づいて、特別図柄の変動パターンを決定する。その後、決定した特別図柄の変動パターンに対応する特別図柄の変動時間を決定する。そして、決定した特別図柄の変動時間に対応するカウンタを特別図柄時間カウンタにセットする処理を行う。
【0214】
ステップS315において、メインCPU110aは、第1特別図柄表示装置20または第2特別図柄表示装置21に特別図柄の変動表示(LEDの点滅)を行わせるための変動表示データを所定の処理領域にセットする。これにより、所定の処理領域に変動表示データがセットされていると、上記ステップS600でLEDの点灯または消灯のデータが適宜作成され、作成されたデータがステップS700において出力されることで、第1特別図柄表示装置20または第2特別図柄表示装置21の変動表示が行われる。
さらに、メインCPU110aは、特別図柄の変動表示が開始されるときに、上記ステップS314で決定された特別図柄の変動パターンに対応する特別図柄の変動パターン指定コマンド(第1特別図柄用変動パターン指定コマンドまたは第2特別図柄用変動パターン指定コマンド)をメインRAM110cの送信データ用記憶領域にセットする。
【0215】
ステップS316において、メインCPU110aは、特図特電処理データ=0から特図特電処理データ=1にセットして、特別図柄変動処理のサブルーチンに移す準備を行い、特別図柄記憶判定処理を終了する。
【0216】
再び、図12に示す特図特電制御処理について説明を戻すことにする。
ステップS320の特別図柄変動処理においては、メインCPU110aは、特別図柄の変動時間が経過したか否かを判定する処理を行う。
具体的には、ステップS314で決定された特別図柄の変動時間が経過したか(特別図柄時間カウンタ=0)否かを判定し、特別図柄の変動時間が経過していないと判定した場合には、特図特電処理データ=1を保持したまま、今回の特別図柄変動処理を終了する。なお、上記ステップS314でセットされた特別図柄の変動時間のカウンタは、上記ステップS110において減算処理されていく。
【0217】
特別図柄の変動時間が経過したと判定すれば、上記ステップS313で決定された特別図柄を第1特別図柄表示装置20または第2特別図柄表示装置21に停止表示させる。これにより、第1特別図柄表示装置20または第2特別図柄表示装置21に特別図柄が停止表示され、遊技者に大当たりの判定結果が報知されることとなる。
また、高確率遊技回数(X)>0のときには高確率遊技回数(X)カウンタから1を減算して更新し、高確率遊技回数(X)=0となれば、高確率遊技フラグをクリアする。
最後に、特図特電処理データ=1から特図特電処理データ=2にセットして、特別図柄停止処理のサブルーチンに移す準備を行い、特別図柄変動処理を終了する。
【0218】
ステップS330の特別図柄停止処理においては、メインCPU110aは、停止表示された特別図柄が「大当たり図柄」であるか、「小当たり図柄」であるか、「ハズレ図柄」であるかを判定する処理を行う。
そして、大当たり図柄と判定された場合には、遊技状態記憶領域に記憶されているデータを参照し、現在の遊技状態を示すデータを遊技状態バッファにセットする。その後に、遊技状態記憶領域(高確率遊技フラグ記憶領域等)に記憶されているデータ(高確率遊技フラグ)、高確率遊技回数(X)カウンタをクリアする。さらに、特図特電処理データ=2から特図特電処理データ=3にセットして、大当たり遊技処理のサブルーチンに移す準備を行い、特別図柄停止処理を終了する。
【0219】
また、小当たり図柄と判定された場合には、遊技状態記憶領域に記憶されているデータはクリアせずに、特図特電処理データ=2から特図特電処理データ=5にセットして、小当たり遊技処理のサブルーチンに移す準備を行い、特別図柄停止処理を終了する。
一方、ハズレ図柄と判定された場合には、特図特電処理データ=2から特図特電処理データ=0にセットして、特別図柄記憶判定処理のサブルーチンに移す準備を行い、特別図柄停止処理を終了する。
【0220】
ステップS340の大当たり遊技処理においては、メインCPU110aは、上記長当たりまたは短当たりのいずれの大当たりを実行させるかを決定し、決定した大当たりを制御する処理を行う。
具体的には、まず、特別電動役物作動態様決定テーブルを参照し、上記ステップS313で決定された大当たり図柄の種類(停止図柄データ)に基づいて、大当たりの開放態様を決定する。
【0221】
次に、決定した大当たりの開放態様を実行させるために、大入賞口開放態様テーブルを参照し、大当たりの種類に応じた開放時間を特別遊技タイマカウンタにセットするとともに、第1大入賞口開閉ソレノイド16c(または第2大入賞口開閉ソレノイド17c)の駆動データを出力して第1大入賞口開閉扉16b(または第2大入賞口開閉扉17b)を開放させる。このとき、ラウンド遊技回数(R)記憶領域に1を加算する。
この開放中に規定個数の遊技球が入球するか、大入賞口の開放時間が経過すると(大入賞口入球数(C)=9または特別遊技タイマカウンタ=0である)と、第1大入賞口開閉ソレノイド16c(または第2大入賞口開閉ソレノイド17c)の駆動データの出力を停止して第1大入賞口開閉扉16b(または第2大入賞口開閉扉17b)を閉鎖させる。これにより、1回のラウンド遊技が終了する。このラウンド遊技の制御を繰り返し15回行う。
【0222】
15回のラウンド遊技が終了すると(ラウンド遊技回数(R)=15)、ラウンド遊技回数(R)記憶領域および大入賞口入球数(C)記憶領域に記憶されているデータをクリアするとともに、特図特電処理データ=3から特図特電処理データ=4にセットして、大当たり遊技終了処理のサブルーチンに移す準備を行い、大当たり遊技処理を終了する。
【0223】
ステップS350の大当たり遊技終了処理においては、メインCPU110aは、高確率遊技状態または低確率遊技状態のいずれかの確率遊技状態を決定する処理を行う。
具体的には、大当たり遊技終了時設定データテーブルを参照し、遊技状態バッファに記憶されているデータと上記ステップS313で決定された大当たり図柄の種類(停止図柄データ)とに基づいて、高確率遊技フラグの設定、高確率遊技回数(X)の設定を行う。例えば、特別図柄1であれば、高確率遊技フラグ記憶領域に高確率遊技フラグをセットし、高確率遊技回数(X)カウンタに10000回をセットする。
その後、特図特電処理データ=4から特図特電処理データ=0にセットして、特別図柄記憶判定処理のサブルーチンに移す準備を行い、大当たり遊技終了処理を終了する。
【0224】
ステップS360の小当たり遊技処理においては、メインCPU110aは、まず、特別電動役物作動態様決定テーブルを参照し、上記ステップS313で決定された小当たり図柄の種類(停止図柄データ)に基づいて、小当たりの開放態様を決定する。
次に、決定した小当たりの開放態様を実行させるために、大入賞口開放態様テーブルを参照し、小当たりの開放時間を特別遊技タイマカウンタにセットするとともに、第2大入賞口開閉ソレノイド17cの駆動データを出力して第2大入賞口開閉扉17bを開放させる。このとき、開放回数(K)記憶領域に1を加算する。
小当たりの開放時間が経過する(特別遊技タイマカウンタ=0)と、第2大入賞口開閉ソレノイド17cの駆動データの出力を停止して第2大入賞口開閉扉17bを閉鎖させる。この第2大入賞口開閉扉17bの開閉制御を繰り返し15回行う。
【0225】
そして、第2大入賞口開閉扉17bの開閉制御が15回行われるか、第2大入賞口17に規定個数の遊技球が入球する(開放回数(K)=15または大入賞口入球数(C)=9である)と、小当たり遊技を終了させるため、第2大入賞口開閉ソレノイド17cの駆動データの出力を停止させ、開放回数(K)記憶領域および大入賞口入球数(C)記憶領域に記憶されているデータをクリアするとともに、特図特電処理データ=5から特図特電処理データ=0にセットして、特別図柄記憶判定処理のサブルーチンに移す準備を行い、小当たり遊技処理を終了する。
【0226】
[主制御部の認証処理に関する制御処理]
以下、本発明の実施形態に係る遊技機1の主制御部110の認証処理に関する制御処理について説明する。まず、主制御部110のブート処理について説明する。
遊技機1に電源が投入されると、主制御部110にシステムリセットが発生し、メインCPU110aは、ブートROM110dに予め記憶されたブート処理用プログラムに基づいて、主制御部110のブート処理を行う。
図14は、本実施形態に係る主制御部110によるブート処理を示すフローチャートである。
【0227】
ステップS51において、メインCPU110aは、内部状態を割込禁止に設定する。
ステップS52において、メインCPU110aは、自身の初期化後、メインCPU110a自身が正常に作動可能かどうかを確認する自己診断処理を行う。自己診断処理の結果、正常に作動可能であればステップS53に処理を移し、正常に作動可能でなければ、その後の処理を行わない。
【0228】
ステップS53において、メインCPU110aは、内蔵回路等への初期値設定処理を行う。具体的には、メインCPU110aは、スタックポインタにスタックポイント指定アドレスを設定し、内蔵レジスタの初期化を行うとともに、ワンチップマイコン110mの内蔵回路や周辺回路等の初期化、入出力ポートの初期化を行う。そして、メインCPU110aは、初期値を必要とするこれらの内蔵回路等へ各種の初期値を設定する。このとき、メインCPU110aは、送信部500の各構成部に対しても同様の処理を施して、送信部500に対する初期値設定処理を行う。
【0229】
ステップS54において、メインCPU110aは、送信部500に対して生成パラメータ設定処理を行う。具体的には、メインCPU110aは、送信部500に対する生成パラメータを読み出すための読み出し信号をメインROM110bへ出力する。そして、メインCPU110aは、当該読み出し信号によりメインROM110bから出力された生成パラメータを、内部バス550を介して取り込む。続いて、メインCPU110aは、取り込んだ生成パラメータを送信部500の制御部510へ書き込むための書き込み信号を出力する。そして、メインCPU110aは、当該書き込み信号によりメインCPU110aから出力された生成パラメータを、内部バス550を介して制御部510の生成パラメータ用記憶領域へセットする。なお、本ステップS54の生成パラメータ設定処理は、メインCPU110aが行う初期値設定処理の中でも、送信部500に生成パラメータを設定する処理を特筆したものであるため、初期値設定処理の一環として、ステップS53の中で行うように構成することも可能である。
【0230】
ステップS55において、送信部500は、付加プロトコル設定処理を行う。具体的には、送信部500を構成する制御部510は、自身が保持するアルゴリズムに従って、生成パラメータ用記憶領域にセットされた生成パラメータが、遡及数Nを担う複数の遡及数のうち、どの遡及数に対応した値であるかを確認する。そして、制御部510は、セットされた生成パラメータに対応する遡及数Nの値を、遡及数記憶領域(N)にセットする。これによって、制御部510は、後述する検査値付加処理の際に、遡及数記憶領域(N)に記憶された遡及数Nの値を確認し、当該遡及数Nに対応したアドレスデータのみが、内部バス550を介してアドレス設定部523へ出力されることとなる。本処理を終了すると、ブート処理が終了する。
【0231】
次に、上記検査値生成処理および上記検査値付加処理を含む主制御部110のコマンド送信処理について説明する。
図15は、本実施形態に係る主制御部110におけるコマンド送信処理を示すフローチャートである。なお、図15の各ステップにおいて、中括弧{}内の表記は、送信部500を構成する制御部510に設けられた、生成個数記憶領域(P)、変更タイミング情報記憶領域(Mi)、および遡及数記憶領域(N)への処理を概説するためのものである。
主制御部110のブート処理を含む初期化処理を行った後、コマンド送信処理の実行タイミングとなると、メインCPU110aは、メインRAM110cの送信データ用記憶領域にセットされた制御コマンド(P)を送信部500へ出力し、誤り検査値を付加して演出制御部120へ送信させる。
【0232】
ステップS71において、メインCPU110aは、送信部500を構成する送信バッファ530へ制御コマンド(P)を書き込むための書き込み信号を出力し、送信データ用記憶領域にセットされた制御コマンド(P)を、送信バッファ530へ書き込んでセットする。
ステップS72において、送信部500を構成する生成回路521は、メインCPU110aが出力した制御コマンド(P)が入力されると、予め設定された生成方式にて誤り検査値(P)を生成し、内部バス550へ出力する。そして、制御部510は、メインCPU110aが出力した送信バッファ530への書き込み信号の検知に応じて、格納回路522の格納領域(P)へ誤り検査値(P)を書き込むための書き込み信号を出力する。
ステップS73において、格納回路522は、制御部510が出力した誤り検査値(P)を書き込むための書き込み信号が入力されると、内部バス550から誤り検査値(P)を取り込み、格納領域(P)へ格納する。
【0233】
ステップS74において、送信部500を構成する制御部510は、メインCPU110aが出力した送信バッファ530への書き込み信号の検知に応じて、生成個数記憶領域(P)の値を1加算して更新する。なお、本ステップS74での処理は、制御部510が、制御コマンド(P)の送信バッファ530への書き込みを検知してからステップS75の処理を行うまで間に行われればよく、必ずしもステップS73の直後に行われる必要はない。
ステップS75において、送信部500を構成する判定回路524は、上記ステップS71で送信バッファ530にセットされた制御コマンド(P)が、予め取り決められた変更条件を満たす制御コマンドであるか否かを判定する。判定回路524は、当該制御コマンド(P)が、所定の制御コマンドでなければ、変更条件を満たす制御コマンドが送信バッファ530にセットさていないことを示す判定結果信号を制御部510へ出力し、ステップS77に処理を移す。一方、判定回路524は、当該制御コマンド(P)が、所定の制御コマンドであれば、変更条件を満たす制御コマンドが送信バッファ530にセットされたことを示す判定結果信号を制御部510へ出力し、ステップS76に処理を移す。
【0234】
ステップS76において、制御部510は、判定結果信号の内容を確認し、メインCPU110aが現に出力した制御コマンド(P)が変更条件を満たす制御コマンドであると判断し、付加プロトコルを変更、すなわち遡及数記憶領域(N)に記憶された遡及数Nの値を変更するタイミングを設定する。具体的には、制御部510は、変更タイミング情報Miを設定するべく、自身の変更タイミング情報記憶領域(Mi)に対して、現在の生成個数記憶領域(P)の値に予め取り決められたMoの値を加算した値(P+Mo)を記憶する。
ステップS77において、制御部510は、現在が遡及数Nの値を変更するタイミングであるか否かを判定する。具体的には、制御部510は、変更タイミング情報記憶領域(Mi)の最小値Mminと現在の生成個数記憶領域(P)の値とを比較する。そして、制御部510は、両者が一致していなければ、現在は変更タイミングではないと判定し、ステップS79に処理を移し、両者が一致していれば、現在は変更タイミングであると判定し、ステップS78に処理を移す。
【0235】
ステップS78において、制御部510は、付加プロトコルを変更すべく遡及数Nを変更する。具体的には、遡及数記憶領域(N)の値を予め取り決められた変更方式で演算し、得られた値N’を変更後の遡及数Nとして遡及数記憶領域(N)へ記憶する。
ステップS79において、制御部510は、送信バッファ530にセットされた制御コマンド(P)に付加すべき誤り検査値として、初期検査値を用いるか否かを判定する。具体的には、制御部510は、生成個数記憶領域(P)の値と遡及数記憶領域(N)の値とを比較し、P>Nでなければ、すなわちP≦NであればステップS81に処理を移し、P>Nであれば、ステップS80に処理を移す。
【0236】
ステップS80において、制御部510は、送信バッファ530にセットされた制御コマンド(P)に対して、当該制御コマンド(P)よりN個前に生成された制御コマンド(P−N)の誤り検査値(P−N)を送信バッファ530へ出力させる。具体的には、制御部510は、現在の遡及数記憶領域(N)の値を確認して、格納回路522の格納領域(P−N)を指定するアドレスデータおよび格納回路522への読み出し信号を出力する。続いて、制御部510は、格納領域(P−N)に格納された誤り検査値(P−N)を送信バッファ530へ書き込むための書き込み信号を出力する。
【0237】
この誤り検査値(P−N)の送信バッファ530への書き込み信号を出力するタイミングは、メインCPU110aが制御コマンド(P)を送信バッファ530へセットしてから、所定時間(β)経過後に、誤り検査値(P−N)を送信バッファ530へ書き込むとして設定する。そして、このタイミングは、送信バッファ530に書き込まれる各制御コマンドの直後に連続して誤り検査値が書き込まれるようなタイミングである。
【0238】
具体的には、制御部510は、検知した制御コマンド(P)の書き込み信号の検出時点から、制御コマンド(P)の送信バッファ530への書き込みが完了して制御コマンド(P)がセットされるまでに要する時間(=β <<α)が経過した後に、誤り検査値(P−N)の送信バッファ530への書き込みが開始されるようなタイミングに、誤り検査値(P−N)の書き込み信号の出力タイミングを設定する。なお、当該誤り検査値(P−N)の書き込み信号の出力タイミングは、メインCPU110aからの指示によらず、送信部500が保持するアルゴリズムで予め設定されている。
【0239】
ステップS81において、制御部510は、メインROM110bに記憶されている固有情報を読み出し、格納回路522の初期検査値格納領域に初期検査値として格納する。このとき、固有情報および初期検査値格納領域がN個分ある場合は、一度にN個の固有情報を読み出してもよいし、一度に1個ずつ、固有情報を読み出してもよい。なお、本ステップS81は、遊技機1のリセット時など、格納回路522に格納されていた過去の誤り検査値がクリアされた場合に行う処理であり、一度にN個全ての固有情報を読み出すならば、その後は実行しない。
ステップS82において、制御部510は、格納回路522の初期検査値格納領域に格納された初期検査値を読み出すための読み出し信号、および送信バッファ530へ書き込むための書き込み信号を出力し、初期検査値を送信バッファ530へ書き込んでセットする。この書き込み信号の出力タイミングも、ステップS80の、誤り検査値(P−N)(初期検査値を含まず)の送信バッファ530への書き込み信号を出力するタイミングと同様である。
【0240】
ステップS83において、制御部510は、送信バッファ530にセットされている制御コマンド(P)の送信タイミングを設定する。具体的には、制御部510は、制御コマンド(P)の送信許可信号を送信バッファ530へ出力するタイミングを設定する。送信許可信号を出力するタイミングは、概略的に言えば、上記ステップS71での制御コマンド(P)の書き込み信号の出力から、次回の制御コマンド(P+1)の送信バッファ530への書き込み信号の出力までの間に行われる。本実施形態では、ステップS71での制御コマンド(P)がメインCPU110aのタイマ割込処理中に送信される制御コマンドでなければ直ちに出力し、タイマ割込処理中に送信される制御コマンドであれば、当該制御コマンド(P)の書き込み信号の出力から、タイマ割込処理プログラムの実行周期(α)が経過する前までの間に出力しておけばよい。
【0241】
ステップS84において、送信バッファ530は、制御部510が出力した送信許可信号が入力されると、セットされた制御コマンド(P)および誤り検査値(P−N)を送信回路540へ直ちに出力する。送信回路540は、送信バッファ530から出力された制御コマンド(P)および誤り検査値(P−N)を一連の送信データとして、演出制御部120へ直ちに送信する。よって、制御コマンド(P)は、誤り検査値(P−N)が付加された制御コマンドとして演出制御部120へ送信されることになる。
【0242】
誤り検査値の書き込みタイミングを上記のように設定することで、今回付加すべき誤り検査値(P−N)の送信バッファ530への書き込みタイミングが他のデータの書き込みタイミングと重複して上書きされたり、誤り検査値(P−N)の書き込みタイミングに送信バッファ530の記憶領域に空き容量が存在せず、オーバーフローが発生したりすることを抑止することができる。このことが、演出制御部120での誤り検査処理の際に、実際に付加されて送信された誤り検査値が本来付加すべき誤り検査値と整合していないことに起因して誤り検査処理の検査結果が正常と判定されなくなるおそれを抑止し、誤り検査処理の確度を向上することにつながる。
【0243】
また、誤り検査値の書き込みタイミングを上記のように設定することで、今回付加すべき誤り検査値(P−N)の送信バッファ530への書き込みタイミングと、制御コマンド(P)の送信バッファ530への書き込みタイミングの時間軸上の位置関係が明確化され、誤り検査値(P−N)は制御コマンド(P)の直後に必ず付加され、一つの送信データとして送信されることとなる。これにより、誤り検査値(P−N)が、誤り検査値(P−N)単体で演出制御部120へ送信されることがない。よって、不正者が、主制御部110と演出制御部120の間の送信データを窃取して、誤り検査値(P−N)を不正に解析し再利用することが困難となり、遊技機1のセキュリティ強度を向上することができる。
【0244】
[演出制御部の制御処理]
以下、本発明の実施形態に係る遊技機1の演出制御部120の制御処理について説明する。まず、演出制御部120のメイン処理について説明する。
図16は、本実施形態に係る演出制御部120によるメイン処理を示すフローチャートである。
【0245】
ステップS1000において、サブCPU120aは、初期化処理を行う。この処理において、サブCPU120aは、電源投入に応じて、サブROM120bからメイン処理に関するプログラムコードを読み込む。これとともに、サブCPU120aは、サブRAM120cに記憶されるフラグなどを初期化し、所定値を設定する処理を行う。この処理が終了した場合には、ステップS1100に処理を移す。なお、本ステップS1000の中で、主制御部110の誤り検査値付加機能に対応した誤り検査値出力機能を、検査値生成部620へ設定する処理が行われる。
【0246】
ステップS1100において、サブCPU120aは、演出用乱数更新処理を行う。この処理において、サブCPU120aは、サブRAM120cに記憶される演出用乱数値、演出図柄決定用乱数、演出モード決定用乱数等を更新する処理を行う。以降は、所定の割込処理が行われるまで、上記ステップS1100の処理を繰り返し行う。
【0247】
次に、演出制御部120の割込処理について説明する。
図17は、本実施形態に係る演出制御部120による割込処理を示すフローチャートである。
サブCPU120aは、演出制御部120に設けられたクロックパルス発生回路(図示せず)から出力されるクロック信号に基づいて、所定の周期(例えば2ミリ秒)ごとに、演出制御部120のタイマ割込処理を実行する。
【0248】
ステップS1200において、サブCPU120aは、サブCPU120aのレジスタに記憶されている情報をスタック領域に退避させる。
ステップS1300において、サブCPU120aは、演出制御部120で用いられる各種タイマカウンタの更新処理を行う。
【0249】
ステップS1500において、サブCPU120aは、コマンド解析処理を行う。この処理において、サブCPU120aは、サブRAM120cの受信データ用記憶領域に記憶された制御コマンドの種別を解析する処理を行う。
【0250】
演出制御部120を構成する受信部600では、主制御部110から送信された制御コマンドを受信し、自身の受信バッファに記憶すると、主制御部110から制御コマンドの受信割込要求があった旨を示す信号を出力し、制御コマンドの受信割込処理を発生させる。
そして、サブCPU120aは、受信した制御コマンドの誤り検査処理を行うとともに、誤り検査値処理において、制御コマンドの正当性が認証されると、当該制御コマンドを受信バッファからサブRAM120cの受信データ用記憶領域へ取り込んで記憶する。そして、サブCPU120aは、受信データ用記憶領域に記憶された制御コマンドの種別を解析し、制御コマンドの種別に応じた処理を行う。なお、コマンド解析処理の詳細については後述する。
【0251】
ステップS1700において、サブCPU120aは、演出ボタン検出スイッチ35aの信号のチェックを行い、演出ボタン35からの入力に関する演出用入力制御処理を行う。
ステップS1800において、サブCPU120aは、サブRAM120cの送信データ用記憶領域にセットされた制御コマンドや各種データを、ランプ制御部140や画像制御部150へ送信するための処理である演出用出力制御処理を行う。
ステップS1900において、サブCPU120aは、ステップS1200で退避した情報をサブCPU120aのレジスタに復帰させる。
【0252】
次に、演出制御部120のコマンド解析処理について説明する。
図18および図19は、本実施形態に係る演出制御部120によるコマンド解析処理を示すフローチャートである。なお、図19のコマンド解析処理2は、図18のコマンド解析処理1に引き続いて行われるものである。
【0253】
ステップS1501において、サブCPU120aは、受信部600の受信バッファに制御コマンドが記憶されているか否かを確認して、制御コマンドを受信したか否かを判定する。
サブCPU120aは、受信バッファに制御コマンドが記憶されていなければコマンド解析処理を終了し、受信バッファに制御コマンドが記憶されていればステップS3000に処理を移す。
【0254】
ステップS3000において、サブCPU120aは、受信バッファに記憶されている制御コマンドに対して誤り検査処理を行い、受信した制御コマンドの正当性が認証されると、受信した制御コマンドを受信データ用記憶領域に取り込み、制御コマンドの種別を更に解析するべく、ステップS1510に処理を移す。なお、誤り検査処理の詳細については後述する。
【0255】
ステップS1510において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、デモ指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドがデモ指定コマンドであれば、ステップS1511に処理を移し、デモ指定コマンドでなければステップS1520に処理を移す。
【0256】
ステップS1511において、サブCPU120aは、デモ演出パターンを決定するデモ演出パターン決定処理を行う。
具体的には、デモ演出パターンを決定し、決定したデモ演出パターンを演出パターン記憶領域にセットするとともに、決定したデモ演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定したデモ演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
【0257】
ステップS1520において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、特別図柄記憶指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが特別図柄記憶指定コマンドであれば、ステップS1521に処理を移し、特別図柄記憶指定コマンドでなければステップS1530に処理を移す。
【0258】
ステップS1521において、サブCPU120aは、特別図柄記憶指定コマンドを解析して、液晶表示装置31に表示させる特別図柄の保留画像(以下、「特図保留画像」という)の表示個数を決定するとともに、決定した特図保留画像の表示個数に対応する特図表示個数指定コマンドを画像制御部150とランプ制御部140に送信する特別図柄記憶数決定処理を行う。
【0259】
ステップS1530において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、演出図柄指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが演出図柄指定コマンドであれば、ステップS1531に処理を移し、演出図柄指定コマンドでなければステップS1540に処理を移す。
【0260】
ステップS1531において、サブCPU120aは、受信した演出図柄指定コマンドの内容に基づいて、液晶表示装置31に停止表示させる演出図柄36を決定する演出図柄決定処理を行う。
具体的には、演出図柄指定コマンドを解析して、大当たりの有無、大当たりの種別に応じて演出図柄36の組み合わせを構成する演出図柄データを決定し、決定された演出図柄データを演出図柄記憶領域にセットするとともに、演出図柄データを画像制御部150とランプ制御部140に送信するため、演出図柄データ示す停止図柄指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
【0261】
ステップS1532において、サブCPU120aは、上記ステップS1100において更新されている演出モード決定用乱数値から1つの乱数値を取得し、取得した演出モード決定用乱数値と受信した演出図柄指定コマンドに基づいて、複数の演出モード(例えば、ノーマル演出モードやチャンス演出モード)の中から1つの演出モードを決定する演出モード決定処理を行う。また、決定した演出モードは、演出モード記憶領域にセットされる。
【0262】
ステップS1540において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、変動パターン指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが変動パターン指定コマンドであれば、ステップS1541に処理を移し、変動パターン指定コマンドでなければステップS1550に処理を移す。
【0263】
ステップS1541において、サブCPU120aは、上記ステップS1100において更新されている演出用乱数値から1つの乱数値を取得し、取得した演出用乱数値、受信した変動パターン指定コマンドおよび演出モード記憶領域にセットされている演出モードに基づいて、複数の変動演出パターンの中から1つの変動演出パターンを決定する変動演出パターン決定処理を行う。
具体的には、ノーマル演出モードであれば、変動演出パターン決定テーブルを参照し、取得した演出用乱数値に基づいて1つの変動演出パターンを決定し、決定した変動演出パターンを演出パターン記憶領域にセットするとともに、決定した変動演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定した変動演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
その後、かかる演出パターンに基づいて、液晶表示装置31、音声出力装置32、演出用駆動装置33、演出用照明装置34が制御されることになる。なお、ここで決定した変動演出パターンに基づいて、演出図柄36の変動態様が決定されることとなる。
【0264】
ステップS1550において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、図柄確定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが図柄確定コマンドであれば、ステップS1551に処理を移し、図柄確定コマンドでなければステップS1560に処理を移す。
【0265】
ステップS1551において、サブCPU120aは、演出図柄36を停止表示させるために、演出図柄を停止表示させるための停止指定コマンドをサブRAM120cの送信データ用記憶領域にセットする演出図柄停止表示処理を行う。
【0266】
ステップS1560において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、遊技状態指定コマンドであるか否かを判定する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが遊技状態指定コマンドであればステップS1561に処理を移し、遊技状態指定コマンドでなければステップS1570に処理を移す。
【0267】
ステップS1561において、サブCPU120aは、受信した遊技状態指定コマンドに基づいた遊技状態を示すデータをサブRAM120cにある遊技状態記憶領域にセットする。
【0268】
ステップS1570において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、オープニング指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドがオープニング指定コマンドであればステップS1571に処理を移し、オープニング指定コマンドでなければステップS1580に処理を移す。
【0269】
ステップS1571において、サブCPU120aは、当たり開始演出パターンを決定する当たり開始演出パターン決定処理を行う。
具体的には、オープニング指定コマンドに基づいて当たり開始演出パターンを決定し、決定した当たり開始演出パターンを演出パターン記憶領域にセットするとともに、決定した当たり開始演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定した当たり開始演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
【0270】
ステップS1580において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、大入賞口開放指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが大入賞口開放指定コマンドであればステップS1581に処理を移し、大入賞口開放指定コマンドでなければステップS1590に処理を移す。
【0271】
ステップS1581において、サブCPU120aは、大当たり演出パターンを決定する大当たり演出パターン決定処理を行う。
具体的には、大入賞口開放指定コマンドに基づいて大当たり演出パターンを決定し、決定した大当たり演出パターンを演出パターン記憶領域にセットするとともに、決定した大当たり演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定した大当たり演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。
【0272】
ステップS1590において、サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドが、エンディング指定コマンドであるか否かを確認する。
サブCPU120aは、受信データ用記憶領域に記憶されている制御コマンドがエンディング指定コマンドであればステップS1591に処理を移し、エンディング指定コマンドでなければコマンド解析処理を終了する。
【0273】
ステップS1591において、サブCPU120aは、当たり終了演出パターンを決定する当たり終了演出パターン決定処理を行う。
具体的には、エンディング指定コマンドに基づいて当たり終了演出パターンを決定し、決定した当たり終了演出パターンを演出パターン記憶領域にセットするとともに、決定した当たり終了演出パターンの情報を画像制御部150とランプ制御部140に送信するため、決定した当たり終了演出パターンに基づく演出パターン指定コマンドをサブRAM120cの送信データ用記憶領域にセットする。本処理を終了すると、コマンド解析処理が終了する。
【0274】
次に、演出制御部120の誤り検査処理について説明する。
図20は、本実施形態に係る演出制御部120による誤り検査処理を示すフローチャートである。なお、図20の各ステップにおいて、中括弧{}内の表記は、サブRAM120cに設けられた、受信個数記憶領域(P)、変更タイミング情報記憶領域(Mi)、および遡及数記憶領域(N)への処理を概説するためのものである。
【0275】
ステップS3010において、サブCPU120aは、受信部600の受信バッファに記憶された制御コマンド(P)から、当該制御コマンド(P)に付加された誤り検査値(P−N)を抽出する。
ステップS3020において、サブCPU120aは、抽出した誤り検査値(P−N)を検査部610へ出力するとともに、誤り検査値(P−N)を抽出後の制御コマンド(P)を検査値生成部620へ出力する。
【0276】
ステップS3030において、サブCPU120aは、受信部600から出力された制御コマンド(P)の誤り検査値(P)を、検査値生成部620を構成する生成部621にて生成する。
ステップS3040において、サブCPU120aは、生成部621にて生成された誤り検査値(P)を、検査値生成部620を構成する格納部622にて格納する。
【0277】
ステップS3050において、サブCPU120aは、受信部600が出力した制御コマンド(P)の受信割込要求信号や、受信部600が検査値生成部620へ出力した制御コマンド(P)の検知に応じて、受信個数記憶領域(P)の値を1加算して更新する。なお、本ステップS3050での処理は、サブCPU120aが、制御コマンド(P)の受信を検知してからステップS3060の処理を行うまで間に行われればよく、必ずしもステップS3040の直後に行われる必要はない。
ステップS3060において、サブCPU120aは、制御コマンド(P)が、予め取り決められた変更条件を満たす制御コマンドであるか否かを決定部623にて判定する。サブCPU120aは、制御コマンド(P)が変更条件を満たす制御コマンドでなければ、ステップS3080に処理を移し、制御コマンド(P)が変更条件を満たす制御コマンドであれば、ステップS3070に処理を移す。
【0278】
ステップS3070において、サブCPU120aは、制御コマンド(P)が変更条件を満たす制御コマンドであるとして、出力プロトコルを変更、すなわち遡及数記憶領域(N)に記憶された遡及数Nの値を変更するタイミングを決定部623にて設定する。具体的には、サブCPU120aは、変更タイミング情報Miを設定すべく、変更タイミング情報記憶領域(Mi)に対して、現在の受信個数記憶領域(P)の値に予め取り決められたMoの値を加算した値(P+Mo)を記憶する。
ステップS3080において、サブCPU120aは、現在が遡及数Nの値を変更するタイミングであるか否かを決定部623にて判定する。具体的には、サブCPU120aは、変更タイミング情報記憶領域(Mi)の最小値Mminと現在の受信個数記憶領域(P)の値とを比較する。そして、サブCPU120aは、両者が一致していなければ、現在は変更タイミングではないと判定し、ステップS3100に処理を移し、両者が一致していれば、現在は変更タイミングであると判定し、ステップS3090に処理を移す。
【0279】
ステップS3090において、サブCPU120aは、出力プロトコルを変更すべく遡及数Nを決定部623にて変更する。具体的には、サブCPU120aは、遡及数記憶領域(N)の値を予め取り決められた変更方式で演算し、得られた値N’を変更後の遡及数Nとして遡及数記憶領域(N)へ記憶する。
ステップS3100において、サブCPU120aは、検査部610へ出力すべき誤り検査値として初期検査値を用いるか否かを決定部623にて判定する。具体的には、サブCPU120aは、受信個数記憶領域(P)の値と遡及数記憶領域(N)の値とを比較し、P>Nでなければ、すなわちP≦Nであれば、ステップS3120に処理を移し、P>Nであれば、ステップS3110に処理を移す。
【0280】
ステップS3110において、サブCPU120aは、検査部610へ出力すべき誤り検査値を格納部622へ通知し、誤り検査値(P−N)を検査部610へ出力する。具体的には、サブCPU120aは、遡及数記憶領域(N)を確認し、今回検査部610へ出力すべき誤り検査値は、受信した制御コマンド(P)よりN個前に生成され格納部622の格納領域(P−N)に格納された誤り検査値(P−N)であることを、決定部623から格納部622へ通知するとともに、格納部622から検査部610へ誤り検査値(P−N)を出力する。
【0281】
ステップS3120において、サブCPU120aは、サブROM120bに記憶されている固有情報を読み出し、格納部622の初期検査値格納領域に初期検査値として格納する。このとき、固有情報および初期検査値格納領域がN個分ある場合は、一度にN個の固有情報を読み出してもよいし、一度に1個ずつ固有情報を読み出してもよい。なお、本ステップS3120は、遊技機1のリセット時など、格納部622に格納されていた過去の誤り検査値がクリアされた場合に行う処理であり、一度にN個全ての固有情報を読み出すならば、その後は実行しない。
ステップS3130において、サブCPU120aは、格納部622の初期検査値格納領域に格納された初期検査値を検査部610へ出力する。
【0282】
ステップS3140において、サブCPU120aは、受信部600から出力された誤り検査値(P−N)と、上記ステップS3010より過去に格納部622にて格納されていた誤り検査値(P−N)とを検査部610にて比較する。両者とも誤り検査値(P−N)で一致する場合は、誤り検査の検査結果は正常であると判断し、一致しない場合は、検査結果は正常でないと判断する。
【0283】
ステップS3150において、サブCPU120aは、検査結果が正常であると判断されたか否かを検査部610にて判定する。サブCPU120aは、検査結果が正常であると判断された場合は、今回受信した誤り検査値(P−N)が付加された制御コマンド(P)、および今回の誤り検査値(P−N)の生成元であるN個前の制御コマンド(P−N)の正当性を認証することができたことにより、主制御部110の正当性が認証されたと判断する。そして、サブCPU120aは、遊技機1は正常に稼働していると判断し、受信した制御コマンド(P)をサブRAM120cの受信データ用記憶領域へ出力し、当該制御コマンド(P)に応じた処理を行わせるべく、誤り検査処理を終了する。一方、サブCPU120aは、検査結果が正常でないと判断された場合は、主制御部110の正当性を認証することができなかったと判断する。そして、サブCPU120aは、遊技機1で不正行為等が発生したおそれがあると判断し、ステップS3160に処理を移す。
ステップS3160において、サブCPU120aは、遊技機1で不正行為等が発生したおそれがあると判断した場合、その旨を報知する為に報知信号を出力し、誤り検査処理を終了する。
【0284】
サブCPU120aは、生成した報知信号を、例えば、ランプ制御部140や画像制御部150、あるいは遊技機1を管理するホールコンピュータ等へ送信する。ランプ制御部140や画像制御部150等は、受信した報知信号に基づいて、遊技機1で不正行為が発生したおそれがある旨を報知する演出を実行する。この演出は、例えば、液晶表示装置31に通常出現しないキャラクタを出現させたり、通常出現するキャラクタを通常とは異なる方法で出現させるなどである。また、液晶表示装置31の輝度を変えたり、色を変えたり、ランプ制御部140に対して所定のランプを表示制御するようにしてもよい。いずれにしても、遊技店の従業員が当該遊技機1の前を通過した際に、その状態に気付くようにしてあればよい。また、この演出は、顧客がその状態に気付かないような演出でもよく、また、顧客が容易に気付く演出であってもよい。顧客が容易に気付く演出にすれば、不正行為を効率的に抑止することができる。
【0285】
また、報知信号に、遊技機1の遊技状態や大当たりの種別に関する情報を含めてもよい。これらの情報に基づいて、遊技機1を管理するホールコンピュータ等によって不正行為が行われているか否かの判断を行ってもよい。例えば、「高確率遊技状態」は賞球が集中していても正常である場合がある。よって、高確率遊技状態中は、その他の状態とは異なる条件で不正行為のおそれがあるか否かについて判断するのがよい。また、遊技状態や大当たりの種別に関する情報は、報知信号に含めずに別信号として出力するようにしてもよい。この場合、従業員は、報知信号と遊技状態や大当たりの種別に関する情報の両方に基づいて、不正行為のおそれがあるか否かについて判断する。
【0286】
なお、主制御部110と、周辺部300の他の制御部との間の認証処理は、主制御部110と演出制御部120との間の認証処理とほぼ同様の手順で行われるため説明を省略する。
【0287】
以上のように、本実施形態では、セキュリティ機能として、主制御部110が出力する制御コマンドの正当性を検査して主制御部110の正当性を認証する。主制御部110は、制御コマンドの誤り検査値を生成し格納している。そして主制御部110は、今回送信する制御コマンドに、これより前(過去)に生成した制御コマンドの誤り検査値を付加して演出制御部120に送信する。一方、演出制御部120は、受信した制御コマンドの誤り検査値を生成し保存している。そして演出制御部120は、今回受信した制御コマンドに付加された誤り検査値と、今回受信した制御コマンドより前(過去)に生成された制御コマンドの誤り検査値とを照合して誤り検査を行う。
【0288】
通常、チェックサム等の誤り検査値は生成元の制御コマンドに付加されて通信エラーチェックに利用される。これに対して、本実施形態では、上述のように、過去に生成した制御コマンドの誤り検査値を、今回送信する制御コマンドに付加する。このような従来にない新規かつ簡易な手法を用いることにより、不正者が制御コマンドと誤り検査値を窃取しても制御コマンドと誤り検査値の関係を容易に知ることができないようにすることができる。したがって、本実施形態によれば、不正行為を防止することができ、遊技機1のセキュリティ強度を向上させることができる。
【0289】
また、主制御部110が過去に生成した制御コマンドの誤り検査値を、今回送信する制御コマンドに付加して送信し、演出制御部120が制御コマンドの誤り検査処理を行うことにより、今回受信した制御コマンドの正当性を認証するとともに、過去に生成された制御コマンド、すなわち、今回付加された誤り検査値の生成元となった制御コマンドの正当性をも認証することができる。すなわち、制御コマンドの連続性を認証することができることとなり、不正行為をより検出しやすくなり、遊技機1のセキュリティ強度を向上させることができる。
【0290】
また、本実施形態では、P≦Nの場合に送信される制御コマンドには、遊技機1に固有の固有情報が付加されることで、誤り検査値が遊技機1に固有の値とすることができる。これにより、固有情報を知らない不正者が一部の制御コマンドを窃取したとしても誤り検査値の解析を不可能とすることができ、遊技機1のセキュリティ強度をより一層向上させることができる。
【0291】
また、本実施形態では、通常は通信エラーチェックに用いる誤り検査値を、不正行為を検出するための検査値として利用している。このように通信エラーチェックに従来から用いられている誤り検査値を利用することで、不正行為を検出するための検査値生成手段を別途設けずとも不正行為を検出することができ、セキュリティ強度を向上させることができる。すなわち、遊技機の主制御部のリソースが限られているという状況下において、セキュリティ強度を向上させつつ、主制御部110の処理負荷の増大を抑制することができる。
【0292】
また、本実施形態では、主制御部110が有する誤り検査値生成機能及び付加機能をハードウェアで構成するとともに、誤り検査値の生成および付加処理を、プログラムに記述されたメインCPU110aからの指示によらず、送信部500独自に保持するアルゴリズムに従って実行し、誤り検査値付きの制御コマンドを、演出制御部120へ自動的に送信している。そして、演出制御部120での誤り検査処理において、現在および過去に生成された制御コマンドの正当性を認証することで、主制御部110の個体としての正当性(アイデンティティ)を認証する。したがって、遊技機1は、セキュリティ機能を有しながらも、セキュリティ機能を有することで増大する主制御部110のCPUの処理負荷やコードサイズを最大限抑制することができ、遊技機1のセキュリティ強度の向上と処理速度の向上とを両立させることができる。
【0293】
また、本実施形態では、送信部500が遡及数Nを複数備えることで、誤り検査値の付加プロトコルを予め複数用意している。そして、どの付加プロトコルによって誤り検査値を付加するかは、主制御部110のブート処理時の初期値設定時以外ではアクセスされないメインROM110bの特定の記憶領域に記憶されている生成パラメータの値に基づいて決定されている。よって、不正者が、主制御部110と演出制御部120との間の送信データを窃取しても、誤り検査値がどのような付加プロトコルで付加されたかを解析することが困難となる。したがって、遊技機1が有する誤り検査値付加機能に対する秘匿性を確保することができ、遊技機1のセキュリティ強度を向上させることができる。
【0294】
また、本実施形態では、ブート処理後の遊技処理中においても、送信する制御コマンドに基づいて送信部500が備える遡及数Nを変更し、誤り検査値の付加プロトコルを変更している。よって、不正者が、制御コマンドおよび誤り検査値を複数窃取したとしても、制御コマンドと誤り検査値の対応関係を解析することが更に困難となる。したがって、遊技機1が有する誤り検査値付加機能に対する秘匿性を更に向上させることができ、遊技機1のセキュリティ強度を更に向上させることができる。
【0295】
なお、本実施形態では、送信部500が誤り検査値の付加プロトコルを変更する条件として、送信する制御コマンドの種別が所定の制御コマンドの種別に該当するか否かを条件とした。
ここで、所定の制御コマンドが、大当たりコマンドである場合、大当たりコマンドは発生タイミングにランダム性を有するとともに、大当たり中の各ラウンドで継続的に送信されるため、大当たり状態にある一定期間中で複数回にわたって付加プロトコルが変更されることとなる。したがって、不正者が、制御コマンドおよび誤り検査値を窃取し、これを流用した場合でも、更に容易に不正を検出することができる。
【0296】
また、所定の制御コマンドが、リーチコマンドである場合、リーチコマンドは発生タイミングにランダム性を有し、かつ、大当たりコマンドよりも発生頻度が高く、時間軸上における付加プロトコルの変更タイミングが分散されることとなる。したがって、不正者が、制御コマンドおよび誤り検査値を複数窃取したとしても、制御コマンドと誤り検査値の対応関係の変化を解析することが更に困難となり、誤り検査値付加機能に対する秘匿性を更に向上させることができる。
【0297】
また、所定の制御コマンドが、オープニング指定コマンドまたはエンディング指定コマンドである場合、オープニング指定コマンドまたはエンディング指定コマンドは、大当たり状態を開始時または終了時に送信される制御コマンドであり、発生タイミングにランダム性を有し、かつ、発生頻度が低いので、付加プロトコルの変更タイミングもランダムかつ低い頻度で発生することとなる。したがって、不正者が、付加プロトコルの変更タイミングを特定することが更に困難となり、誤り検査値付加機能に対する秘匿性を更に向上させることができる。さらに、所定の制御コマンドが、オープニング指定コマンドおよびエンディング指定コマンドの両方である場合、大当たり状態前後の一定期間中に複数回にわたって付加プロトコルが変更されることとなる。したがって、不正者が、制御コマンドおよび誤り検査値を窃取し、これを流用した場合でも、更に不正を検出し易くすることができる。
【0298】
また、所定の制御コマンドが、デモ指定コマンドである場合、デモ指定コマンドは特別図柄の保留数記憶がない状態が所定時間継続したときにデモ表示を表示させるために送信される制御コマンドであり、発生タイミングにランダム性を有するので、時間軸上における付加プロトコルの変更タイミングが分散されることとなる。したがって、不正者が、制御コマンドおよび誤り検査値を複数窃取したとしても、制御コマンドと誤り検査値の対応関係の変化を解析することが更に困難となり、誤り検査値付加機能に対する秘匿性を更に向上させることができる。
【0299】
また、所定の制御コマンドが、ハズレコマンド(ハズレ用演出図柄指定コマンド)である場合、「ハズレ」は、抽選時の抽選結果として最も発生頻度が高いので、ハズレコマンドが送信される頻度は高く、付加プロトコルの変更タイミングの頻度も高くなる。すなわち、高い頻度で付加プロトコルが変更され、制御コマンドと誤り検査値の対応関係自体が複雑で解析することが更に困難となり、誤り検査値付加機能に対する秘匿性を更に向上させることができる。
【0300】
また、本実施形態では、誤り検査値の付加プロトコルを変更するタイミングを、付加プロトコルを変更するか否かの判断対象となる制御コマンドの出力タイミングからMo個後に出力された制御コマンドの出力タイミングとしている。すなわち、本実施形態では、付加プロトコルの変更条件が成立したタイミングと実際の変更タイミングとを分散させている。よって、不正者が、制御コマンドおよび誤り検査値を複数窃取したとしても、制御コマンドと誤り検査値の対応関係を解析することが更に困難となる。したがって、遊技機1が有する誤り検査値付加機能に対する秘匿性を更に向上させることができ、遊技機1のセキュリティ強度を更に向上させることができる。
【0301】
また、本実施形態では、誤り検査値付加機能およびその選択情報としての生成パラメータを予め複数種類用意するものの、特定の生成パラメータのみを実装している。よって、ブート処理での生成パラメータの選択処理に伴うプログラムを新たに設ける必要がなく、プログラムのコードサイズを増大させることもない。また、遊技機メーカーが特定の誤り検査値付加機能だけを採用したい場合などであっても、所望の誤り検査値付加機能に対応した生成パラメータのみを実装すればよく、遊技機メーカーの嗜好や用途に柔軟に対応することができる。したがって、多様性に富んだセキュリティ機能であっても比較的簡易に追加することができ、汎用性の高いセキュリティ機能を提供することができる。また、遊技機1の開発段階中で設計・検証作業等に使用する生成パラメータと、遊技機1の出荷前に実際に実装される生成パラメータとを変えることにより、最終的にどの生成パラメータが採用されたのかを知り得る者を限定することができ、誤り検査値付加機能に対する秘匿性を更に向上させることができる。
【0302】
本実施形態では、今回送信する制御コマンド(P)に対し、これよりN個前に生成した制御コマンド(P−N)の誤り検査値(P−N)を付加する。これを実現するために、本実施形態では、送信部500にN+1個以上の格納領域を有する格納回路522を設けるとともに、格納回路522から送信バッファ530へ出力すべき誤り検査値の格納領域の場所を、現に生成回路521から出力される誤り検査値(P)の格納領域(P)に対してN個前に位置する格納領域(P−N)を示すアドレスデータとして指定し、指定された格納領域(P−N)から誤り検査値(P−N)を送信バッファ530へ出力することとした。しかしながら、本発明はこれに限定されず、以下のような構成とすることもできる。
【0303】
例えば、図21(a)に示すように、格納回路522の替わりに、少なくとも遡及数N個に対応するN段の記憶回路(1)〜(N)で構成された記憶回路525を設ける。記憶回路525を構成する各記憶回路(1)〜(N)は、パイプライン構成となるように各々が接続されており、各記憶回路に記憶されたデータを順次シフトさせるための制御信号(以下、「シフト処理信号」という)が制御部510から入力されると、各記憶回路(1)〜(N)は、各々が記憶する誤り検査値を次段の記憶回路に順次シフトさせる。このように、記憶回路525は、いわゆるシフトレジスタ(FIFOメモリ)の機能を有している。最終段の記憶回路(図21(a)では記憶回路(1))は、送信バッファ530と接続されており、シフト処理信号の入力に伴って、自身が保持する誤り検査値を送信バッファ530に出力する。制御部510がシフト処理信号を出力するタイミングは、制御部510が誤り検査値を送信バッファ530へ書き込むための書き込み信号を出力するタイミングと合わせておけばよい。
【0304】
また、図21(a)に示すように、生成回路521の出力側と記憶回路525との間には、デマルチプレクサ等で構成される出力選択回路526を設け、記憶回路525の各記憶回路(1)〜(N)の入力側とそれぞれ接続しておく。また、出力選択回路526と各記憶回路(1)〜(N)との接続から一の接続を有効にするための制御信号(以下、「接続切替信号」という)を出力する選択回路設定部527を設けておく。制御部510は、付加プロトコル設定処理およびその後の付加プロトコルの変更処理にて記憶される遡及数記憶領域(N)の値に対応した特定の記憶回路(図21(a)では記憶回路(N))を指定する記憶回路指定信号を、選択回路設定部527へ出力するように構成する。選択回路設定部527は、記憶回路指定信号にて指定された特定の記憶回路との接続のみが有効となる接続切替信号を出力する。
【0305】
このように構成することで、生成回路521にて生成および出力された誤り検査値(P)は、出力選択回路526を介して、記憶回路525の各記憶回路のうちの、送信バッファ530と接続された記憶回路(1)からN個遡って接続された記憶回路(N)に記憶されることとなる。またこのとき、記憶回路525では各記憶回路(1)〜(N)同士で誤り検査値がシフトされ、送信バッファ530に対して、誤り検査値(P)よりN個前に記憶された誤り検査値(P−N)が出力されることとなる。なお、図21には示していないが、P≦Nの場合に用いる初期検査値については、本実施形態と同様に、記憶回路525に記憶される誤り検査値がクリアされた際に、メインROM110bからN個の固有情報を全て読み出して初期検査値(1)〜(N)とし、各記憶回路(1)〜(N)へ設定しておけばよい。
【0306】
また、図21(b)に示すように、記憶回路525を生成回路521の入力側に設け、記憶回路525で記憶する対象を制御コマンドとしてもよい。このとき、記憶回路525と生成回路521との間には、出力選択回路526の替わりに、マルチプレクサ等で構成される入力選択回路528を設けておけばよい。そして、入力選択回路528には、図21(a)と同様に、選択回路設定部527から出力された特定の記憶回路(図21(b)では記憶回路(N))との接続のみを有効とする接続切替信号が入力される。このように構成することで、生成回路521には、接続切替信号で有効となった接続元の記憶回路に記憶された制御コマンド(P−N)のみが入力され、送信バッファ530に対して、制御コマンド(P)よりN個前に生成された制御コマンド(P−N)の誤り検査値(P−N)が出力されることとなる。なお、図21(a)の記憶回路525におけるデータをシフトする方向(記憶回路(N)から(1)の方向)と、図21(b)の記憶回路525におけるシフトする方向(記憶回路(1)から(N)の方向)とは、それぞれ逆方向であるが、これは、説明の便宜上、記憶回路(1)〜(N)の符号を同一の順で付与したためである。いずれの記憶回路525もFIFOメモリとして機能するものであり、図21(a)、(b)における実施態様において、特段異なる構成を必要とするものではない。
【0307】
なお、図5で示した実施形態においても、格納回路522を生成回路521の入力側に設け、格納回路522で格納する対象を制御コマンドとしてもよい。また、演出制御部120においても、格納部622で格納する対象を誤り検査値としてもよいし、制御コマンドとしてもよい。また、主制御部110での格納対象と、演出制御部120での格納対象とが異なってもよい。
【0308】
また、本実施形態では、生成パラメータは、付加プロトコルの選択情報として、遡及数Nに対応させておき、生成パラメータによって遡及数Nのデフォルト値を選択させていたが、本発明はこれに限定されない。例えば、図22に示すように、生成パラメータを付加プロトコルの変更条件の選択情報とすることもできる。このとき、制御部510には、予め生成パラメータに対応した複数の変更条件を用意しておくとともに、遡及数Nのデフォルト値を用意しておく。そして、制御部510は、ブート処理中の付加プロトコル設定処理において、メインCPU110aから設定された生成パラメータに対応する変更条件を、判定回路524の変更条件記憶器524bへセットすることとすればよい。
【0309】
なお、判定回路524を構成する比較器524aは、メインCPU110aから出力された制御コマンドが変更条件を満たしているとき、当該制御コマンドが変更条件を満たす制御コマンドであることを示す判定結果信号を、毎回出力しなくともよい。すなわち、比較器524aは、メインCPU110aから出力された制御コマンドが、変更条件を満たす制御コマンドであっても、制御部510にて付加プロトコルが変更されなくなり、不正者が付加プロトコルの変更条件を解析することが更に困難となる。
【0310】
また、生成パラメータは、遡及数Nのデフォルト値と変更条件との両方の選択情報とすることもできる。すなわち、本発明において、生成パラメータは、付加プロトコルを定義するための選択情報に限定されず、変更条件、変更タイミングの設定方法、および遡及数Nの変更方式など、誤り検査値の付加プロトコルに係る変更規則を定義するための選択情報とすることもできる。つまり、生成パラメータは、付加プロトコルおよびその変更規則を実施態様とした誤り検査値付加機能に対する選択情報である。
【0311】
このように、本発明では、誤り検査値付加機能が、主制御部110のブート処理時の初期値設定時以外ではアクセスされないメインROM110bの特定の記憶領域に記憶されている生成パラメータの値に基づいて決定される。よって、不正者が、主制御部110と演出制御部120との間の送信データを窃取しても、遊技機1にどのような誤り検査値付加機能が搭載されているのかを解析することが困難となり、誤り検査値付加機能に対する秘匿性は更に向上し、遊技機1のセキュリティ強度をより一層向上させることができる。
【0312】
また、本実施形態では、P≦Nの場合に、主制御部110では、制御コマンド(P)に対して初期検査値を付加して送信し、演出制御部120では、対応する初期検査値を用いて誤り検査処理を行うこととしたが、本発明はこれに限定されず、演出制御部120は、P≦Nの場合は誤り検査処理を行わず、P>Nとなってから初めて誤り検査処理を行うこととしてもよい。
【0313】
また、本実施形態では、演出制御部120は、主制御部110が有する付加プロトコルを変更する機能と同様の機能を有する決定部623であることとしたが、本発明はこれに限定されず、例えば、演出制御部120は、受信した制御コマンドに基づいて決定部623にて決定した特定の誤り検査値のみを検査部610へ出力して誤り検査処理を行うこととせず、受信した制御コマンドに付加された誤り検査値と格納部622に格納された全ての誤り検査値と照合して、誤り検査処理を行うこととしてもよい。この場合、演出制御部120は、格納部622のいずれかの誤り検査値と一致すれば、検査結果は正常であるとして、受信した制御コマンドの正当性ならびに主制御部110の正当性を認証すればよい。
【0314】
また、本実施形態では、P≦Nの場合に用いる初期検査値を、メインROM110bに予め記憶された固有情報としたが、本発明はこれに限定されない。例えば、主制御部110に計時手段を設け、または主制御部110が予め備えている計時手段を用いて、電源投入時から制御コマンドの送信タイミングまでの経過時間を経時情報として取得し、取得した経時情報を初期検査値として用いてもよい。取得した経時情報の値は、ランダム性を有する変動値であるため、これを用いて生成された初期検査値を再利用することは困難であり、遊技機1のセキュリティ強度をより一層向上させることができる。このとき、演出制御部120は、上記のようにP≦Nの場合は誤り検査処理を行わないようにすればよい。
【0315】
また、このとき、予めN≧2と取り決めてあれば、演出制御部120は、初期検査値として連続して送信された経時情報同士が時系列として連続性を有するか否か、すなわち、連続して送信された経時情報の値が送信順番に従って増加しているか否かを確認することによって誤り検査処理を行ってもよい。なお、経時情報は、計時手段をリアルタイムクロック回路等として取得される絶対的な時間であってもよいし、リセット時から計数された相対的な時間であってもよい。いずれにしても、経時情報は、その取得されるタイミングが不定期なタイミングであればある程、様々な値に変動するため、実質的に遊技機1に固有の情報と捉える事ができる。また、N≧2のとき、経時情報は、制御コマンドの送信タイミング毎に計時手段から取得した経時情報を用いてもよいし、最初に生成した制御コマンドの送信タイミングに取得した経時情報を複数の制御コマンドに対して初期検査値として用いてもよい。また、例えば、最初に生成した制御コマンドに付加する初期検査値は固定値あるメインCPU110aの識別番号(ID)を用い、それ以降の初期検査値は変動値である経時情報を用いるというように、固定値と変動値を組み合わせることもできる。
【0316】
また、P≦Nの場合に用いる初期検査値として、例えば、主制御部110の誤り検査値付加機能の選択情報である生成パラメータを用いてもよい。すなわち、主制御部110の送信部500を構成する制御部510は、ブート処理時に自身の生成パラメータ用記憶領域にセットされた生成パラメータを、生成パラメータ設定処理後も記憶しておく。そして、制御部510は、P≦Nの場合に、メインROM110bに記憶された固有情報を読み出す替わりに、自身の生成パラメータ用記憶領域に記憶しておいた生成パラメータを読み出し、格納回路522の初期検査値格納領域に格納しておき、初期検査値として生成パラメータを用いればよい。生成パラメータは、その内容や実装方法を遊技機メーカーの独自の判断で決定することができるため秘匿性が高く、実質的に遊技機1に固有の情報と捉えることができる。なお、演出制御部120は、上記のようにP≦Nの場合は誤り検査処理を行わないようにすればよい。このようにすることで、演出制御部120は、生成パラメータに相当する誤り検査値付加機能の選択情報を、予め主制御部110との間で取り決めていなくとも、主制御部110で設定された誤り検査値付加機能に対応した誤り検査値出力機能を選択することができる。よって、不正者が、演出制御部120自体を解析しても、複数の誤り検査値出力機能のうちのどの出力機能でもって出力された誤り検査値を用いて誤り検査処理が行われるのかを特定することができず、当該出力機能の秘匿性を確保することができ、遊技機1のセキュリティ強度を更に向上させることができる。
【0317】
また、本実施形態では、誤り検査値の付加タイミングの基準として制御部510が検知する対象を、メインCPU110aが送信バッファ530へ制御コマンドを書き込む際の書き込み信号の出力としたが、本発明はこれに限定されず、制御コマンドそのものの出力や、送信バッファ530に書き込みフラグが立てられたこととすることもできる。制御コマンドそのものの出力や、書き込みフラグが立てられたことを検知するというのは、メインCPU110aが制御コマンドを送信バッファ530へ出力が開始したタイミングや、出力が完了したタイミングを検知することであり、当該制御コマンドを演出制御部120へ送信せしめるための送信部500への送信指示を担う情報と捉える事ができる。この場合、制御部510は、メインCPU110aによる制御コマンドそのものの出力や、書き込みフラグが立てられたことを検知し、この検知信号の入力を基準として、所定時間(β)経過後に、格納回路522に格納された誤り検査値を送信バッファ530へ書き込むこととなる。
【0318】
また、本実施形態では、制御部510、検査値生成部520、送信バッファ530、および送信回路540を送信部500として、ワンチップマイコン110mとは別個の回路構成としたが、本発明はこれに限定されず、送信部500をワンチップマイコン110mと一体の回路構成としてもよい。また、この場合、送信部500のうち、送信バッファ530、送信回路540、およびこれを制御する制御部510の制御機能のみをワンチップマイコン110mと一体の回路構成とし、検査値生成部520、およびこれを制御する制御部510の制御機能は、ワンチップマイコン110mとは別個の回路構成としてもよい。このようにすることで、既存のワンチップマイコンの送信部を転用することができ、セキュリティ機能を実現するために追加する回路を、比較的簡易な回路構成とすることができる。
【0319】
また、本実施形態では、本発明をパチンコ遊技機に適用する例を示したが、これに限定されず、本発明は、雀球遊技機、アレンジボール等のパチンコ遊技機以外の弾球遊技機、スロットマシン等の回胴式遊技機などの他の遊技機にも適用することができる。これらの遊技機においても、本実施形態と同様に構成することにより、本実施形態と同様の効果を得ることができる。また、本実施形態は、その目的および構成等に特に矛盾や問題がない限り、互いの技術を流用することができる。
【符号の説明】
【0320】
1 遊技機
110 主制御部
110a メインCPU
110b メインROM
110c メインRAM
110d ブートROM
110m ワンチップマイコン
120 演出制御部
120a サブCPU
120b サブROM
120c サブRAM
130 払出制御部
140 ランプ制御部
150 画像制御部
160 発射制御部
170 電源部
500 送信部
510 制御部
520 検査値生成部
521 生成回路
522 格納回路
523 アドレス設定部
524 判定回路
524a 比較器
524b 変更条件記憶器
525 記憶回路
526 出力選択回路
527 選択回路設定部
528 入力選択回路
530 送信バッファ
540 送信回路
550 内部バス
600 受信部
610 検査部
620 検査値生成部
621 生成部
622 格納部
623 決定部

【特許請求の範囲】
【請求項1】
所定の遊技情報を記憶する遊技情報記憶領域、及び遊技機の起動の際にアクセス可能であって遊技機の初期設定情報を記憶する初期設定情報記憶領域を有する記憶手段と、
遊技情報に応じた所定の演算を行って制御情報を生成すると共に、生成した制御情報を送信せしめるための送信指示を出力する演算処理手段と、
前記送信指示に対応する制御情報より過去に生成された複数の制御情報のそれぞれに対応する複数の誤り検査値を生成する第1生成手段と、
前記送信指示に対応する制御情報へ付加すべき誤り検査値を、前記第1生成手段にて生成された前記複数の誤り検査値の中から、予め定められたプロトコルに従って決定する決定手段と、
前記決定手段にて決定された誤り検査値を前記送信指示に対応する制御情報へ付加して送信する送信手段と、
を含む主制御部と、
前記第1生成手段にて生成された誤り検査値に対応する検証用の誤り検査値を生成する第2生成手段と、
前記送信手段にて送信された誤り検査値と前記第2生成手段にて生成された誤り検査値とを比較し、前記送信手段にて送信された制御情報の正当性の検査を行う検査手段と、
前記送信手段にて送信された制御情報に基づいた所定の処理を行う情報処理手段と、
を含む周辺制御部と、
を備え、
前記決定手段は、前記送信指示に対応する制御情報に基づいて前記プロトコルを変更する
ことを特徴とする遊技機。
【請求項2】
前記プロトコルは、前記付加すべき誤り検査値を、前記送信指示に対応する制御情報より所定個前に前記演算処理手段にて生成された制御情報に対応する誤り検査値とすることである
ことを特徴とする請求項1に記載の遊技機。
【請求項3】
前記決定手段は、異なる複数の前記所定個のそれぞれに応じた複数の前記プロトコルを保持し、
前記初期設定情報は、前記複数のプロトコルのそれぞれに対応した複数の選択情報を含み、
前記演算処理手段は、前記遊技機の起動の際に、前記複数の選択情報のうちの特定の選択情報を前記決定手段へ設定し、
前記決定手段は、設定された前記特定の選択情報に対応する前記プロトコルに従って前記付加すべき誤り検査値を決定する
ことを特徴とする請求項2に記載の遊技機。
【請求項4】
前記主制御部は、前記送信指示に対応する制御情報が、予め定められた条件を満たす制御情報であるか否かの判定を行う判定手段を更に含み、
前記判定手段は、判定結果を前記決定手段へ出力し、
前記決定手段は、前記判定結果に応じて前記プロトコルを変更する
ことを特徴とする請求項1乃至3のいずれかに記載の遊技機。
【請求項5】
前記条件は、前記送信指示に対応する制御情報の種別が予め定められた制御情報の種別であることを特徴とする請求項4に記載の遊技機。
【請求項6】
前記判定手段は、異なる複数の前記種別のそれぞれに応じた複数の前記条件を保持し、
前記初期設定情報は、前記複数の条件のそれぞれに対応した複数の選択情報を含み、
前記演算処理手段は、前記遊技機の起動の際に、前記複数の選択情報のうちの特定の選択情報を前記判定手段へ設定し、
前記判定手段は、設定された前記特定の選択情報に対応する前記条件に従って前記判定を行う
ことを特徴とする請求項5に記載の遊技機。
【請求項7】
前記初期設定情報に含まれる前記選択情報は、前記演算処理手段が前記遊技機の起動の際に設定する前記特定の選択情報であることを特徴とする請求項3又は6に記載の遊技機。
【請求項8】
前記主制御部は、
前記第1生成手段にて生成された前記複数の誤り検査値を格納する第1格納手段と、
前記送信指示に対応する制御情報を保持する保持手段と、
前記送信指示が出力されたことを検知する検知手段と、
を更に含み、
前記検知手段による前記送信指示の出力の検知に応じて、前記第1格納手段にて格納された誤り検査値を前記保持手段へ出力させ、該誤り検査値を該保持手段にて保持された制御情報へ付加する
ことを特徴とする請求項1乃至7のいずれかに記載の遊技機。
【請求項9】
前記主制御部は、
前記送信指示に対応する制御情報より過去に生成された複数の制御情報を格納する第2格納手段と、
前記送信指示に対応する制御情報を保持する保持手段と、
前記送信指示が出力されたことを検知する検知手段と、
を更に含み、
前記検知手段による前記送信指示の出力の検知に応じて、前記第2格納手段にて格納された制御情報を前記第1生成手段へ出力させると共に、該第1生成手段にて生成された該制御情報に対応する誤り検査値を前記保持手段へ出力させ、該誤り検査値を該保持手段にて保持された制御情報へ付加する
ことを特徴とする請求項1乃至7のいずれかに記載の遊技機。
【請求項10】
前記主制御部は、
遊技機固有の情報を示す固有情報を格納する第3格納手段を更に含み、
前記第1格納手段に、前記第1生成手段にて生成された前記誤り検査値が格納されていない場合は、前記第3格納手段にて格納された固有情報を該誤り検査値として、前記保持手段にて保持された制御情報へ付加する
ことを特徴とする請求項8に記載の遊技機。
【請求項11】
前記主制御部は、
遊技機固有の情報を示す固有情報を格納する第3格納手段を更に含み、
前記第2格納手段に、前記過去に生成された制御情報が格納されていない場合は、前記第3格納手段にて格納された固有情報を該制御情報に対応する誤り検査値として、前記保持手段にて保持された制御情報へ付加する
ことを特徴とする請求項9に記載の遊技機。
【請求項12】
前記送信指示に対応する制御情報は、前記送信手段が前記送信指示の入力に伴って現に送信する前記制御情報、又は、該制御情報より所定個後に前記演算処理手段にて生成された制御情報であることを特徴とする請求項1乃至11のいずれかに記載の遊技機。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図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


【公開番号】特開2012−130608(P2012−130608A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【出願番号】特願2010−287211(P2010−287211)
【出願日】平成22年12月24日(2010.12.24)
【出願人】(000161806)京楽産業.株式会社 (4,820)
【出願人】(300023383)株式会社トリニティーセキュリティーシステムズ (376)
【Fターム(参考)】