(57)【特許請求の範囲】
【請求項１】
制御コマンドを出力する主制御部と前記制御コマンドに基づく処理を行う周辺制御部とを含む遊技機であって、
前記主制御部は、
記憶部に記憶された所定の遊技情報に応じた処理を行って前記制御コマンドを生成し、生成した制御コマンドを予め取り決められた出力制御方式で出力する演算処理部と、
前記演算処理部に後続して設けられており、前記演算処理部によって出力された制御コマンドに付加され該制御コマンドの正当性を検査するための誤り検査値を生成し、生成した誤り検査値を前記制御コマンドへ付加して出力する第１検査値生成部と、
前記第１検査値生成部に後続して設けられており、前記誤り検査値が付加された制御コマンドを前記周辺制御部へ送信する送信部と、
を備え、
前記周辺制御部は、
前記第１検査値生成部によって生成された誤り検査値に対応する検証用の誤り検査値を生成する第２検査値生成部と、
前記送信部によって送信された誤り検査値と前記第２検査値生成部によって生成された誤り検査値とを比較して前記送信部によって送信された制御コマンドの正当性の検査を行う検査部と、
前記送信部によって送信された制御コマンドに基づく処理を行うと共に、前記検査の結果に応じた処理を行う処理部と、
を備え、
前記第１検査値生成部は、
前記演算処理部によって出力された制御コマンドを入力し、入力した制御コマンドを予め指定されたタイミングで出力するバッファ手段と、
前記バッファ手段によって出力された制御コマンドを入力し、入力した制御コマンドへ付加する誤り検査値のビット列を変換する際の変換方式、又は入力した制御コマンドより後に前記演算処理部によって出力される制御コマンドへ付加する誤り検査値のビット列を変換する際の変換方式を、入力した制御コマンドに基づいて、予め取り決められた異なる複数の変換方式のうちのいずれかに決定し、決定した変換方式を示す変換方式情報を、前記タイミングに応じて出力する決定手段と、
前記バッファ手段によって出力された制御コマンドを入力し、入力した制御コマンドより過去に前記演算処理部によって出力された制御コマンドを用いて生成された誤り検査値を、前記タイミングに応じて出力する生成手段と、
前記生成手段によって出力された誤り検査値と前記決定手段によって出力された変換方式情報とを入力し、入力した誤り検査値のビット列を、入力した変換方式情報が示す変換方式で変換し、ビット列が変換された誤り検査値を、前記タイミングに応じて出力する変換手段と、
前記バッファ手段によって出力された制御コマンドと前記変換手段によって出力された誤り検査値とを入力し、入力した該制御コマンドに、入力した該誤り検査値を付加して、該誤り検査値が付加された該制御コマンドを、前記演算処理部において予め取り決められた前記出力制御方式と同じ出力制御方式で、前記タイミングに応じて出力する付加手段と、
を有し、
前記送信部は、前記付加手段によって出力された前記誤り検査値が付加された前記制御コマンドを、前記周辺制御部へ送信する
ことを特徴とする遊技機。
【請求項２】
前記複数の変換方式は、
前記ビット列を構成する各ビットをローテートする変換方式であって、該各ビットをシフトさせるビット数を示すシフト量が、前記変換手段が前記入力した誤り検査値のビット列を変換し前記付加手段へ出力する毎で規則的に変動可能な第１変換方式と、
前記ビット列を構成する各ビットをローテートする変換方式であって、該各ビットをシフトさせるビット数を示すシフト量が、前記変換手段が前記入力した誤り検査値のビット列を変換し前記付加手段へ出力する毎で不規則に変動される第２変換方式と、
を含むことを特徴とする請求項１に記載の遊技機。
【請求項３】
前記決定手段は、前記バッファ手段によって出力された制御コマンドを入力すると、該制御コマンドが予め定められた条件を満たす制御コマンドであるか否かの判定を実行し、前記判定の結果が、入力した制御コマンドが前記条件を満たす制御コマンドであることを示す場合には、前記ビット列を変換する際の変換方式を、前記第２変換方式に決定すること特徴とする請求項２に記載の遊技機。
【請求項４】
前記第１変換方式における前記シフト量は、前記第２変換方式でビット列が変換された誤り検査値に基づいて変動することを特徴とする請求項３に記載の遊技機。
【請求項５】
前記変換手段は、前記第２変換方式でビット列が変換された誤り検査値を前記付加手段へ出力する場合には、該誤り検査値を前記付加手段へ出力した後に前記第１変換方式で前記ビット列を変換する際に用いる前記シフト量を、該誤り検査値に基づいて更新することを特徴とする請求項４に記載の遊技機。
【請求項６】
前記変換手段は、前記第１変換方式で前記ビット列を変換する際に用いる前記シフト量の更新を実行するタイミングを示す更新タイミングとして、互いに異なる複数の更新タイミングを保持し、前記複数の更新タイミングで前記更新を実行可能であり、
前記記憶部は、遊技機の起動の際にアクセス可能であって遊技機の初期設定情報を記憶する記憶領域を有し、前記初期設定情報は前記複数の更新タイミングのそれぞれに対応する複数の選択情報を含み、
前記演算処理部は、前記遊技機の起動の際に前記複数の選択情報のうちの特定の選択情報を前記変換手段へ設定し、
前記変換手段は、設定された前記特定の選択情報に対応する特定の前記更新タイミングを用いて前記更新を実行する
ことを特徴とする請求項５に記載の遊技機。
【請求項７】
前記決定手段は、互いに異なる複数の前記条件を保持し、前記複数の条件を用いて前記判定を実行可能であり、
前記記憶部は、遊技機の起動の際にアクセス可能であって遊技機の初期設定情報を記憶する記憶領域を有し、前記初期設定情報は前記複数の条件のそれぞれに対応する複数の選択情報を含み、
前記演算処理部は、前記遊技機の起動の際に前記複数の選択情報のうちの特定の選択情報を前記決定手段へ設定し、
前記決定手段は、設定された前記特定の選択情報に対応する特定の前記条件を用いて前記判定を実行する
ことを特徴とする請求項３乃至６のいずれかに記載の遊技機。
【請求項８】
前記初期設定情報に含まれる前記選択情報は、前記演算処理部が前記遊技機の起動の際に設定する前記特定の選択情報であることを特徴とする請求項６又は７に記載の遊技機。
【請求項９】
前記第１検査値生成部は、前記演算処理部と前記送信部との間に設けられており、
前記演算処理部と前記第１検査値生成部とは第１バスで接続され、前記第１検査値生成部と前記送信部とは第２バスで接続され、前記第１バス及び前記第２バスは同じ規格のバスあり、
前記演算処理部は、前記生成した制御コマンドを、前記第１バスを介して前記バッファ手段へ出力し、
前記付加手段は、前記誤り検査値が付加された制御コマンドを、前記第２バスを介して前記送信部へ出力する
ことを特徴とする請求項１乃至８のいずれかに記載の遊技機。
【請求項１０】
前記演算処理部において予め取り決められた前記出力制御方式は、前記規格に基づいて取り決められた出力制御方式であり、
前記バッファ手段は、入力した制御コマンドを、該出力制御方式とは異なる所定の出力制御方式で出力し、
前記決定手段は、前記変換方式情報を、前記バッファ手段が用いる前記所定の出力制御方式と同じ出力制御方式で出力し、
前記生成手段は、該生成手段が生成した誤り検査値を、前記バッファ手段が用いる前記所定の出力制御方式と同じ出力制御方式で出力し、
前記変換手段は、該変換手段がビット列を変換した誤り検査値を、前記バッファ手段が用いる前記所定の出力制御方式と同じ出力制御方式で出力する
ことを特徴とする請求項９に記載の遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パチンコ遊技機、雀球遊技機、アレンジボール等の弾球遊技機、スロットマシン等の回胴式遊技機などの遊技機に関する。更に、本発明は、複数の制御部を備える電子機器における各制御部間のデータ伝送の認証方法に関する。
【背景技術】
【０００２】
遊技機に対し行われる、メダルや遊技球など（以下、「遊技媒体」という）を遊技内容とは無関係に強制的に払い出させる不正行為のうち、遊技進行に伴う基本動作を制御する主制御部が搭載された主制御基板からの制御命令情報（以下、「制御コマンド」という）に基づき演出処理等を実行する周辺制御部が搭載された周辺制御基板に関するものとして、例えば以下に示すものがある。
（１）正規な主制御基板と不正な主制御基板との交換
（２）主制御基板に搭載されたＣＰＵが実行する正規なプログラムが記憶されたＲＯＭと上記プログラムを改ざんした不正なプログラムが記憶されたＲＯＭとの交換
（３）主制御基板と周辺制御基板との間に不正な基板（なりすまし基板）を設け、かつ上記（２）のＲＯＭの交換
【０００３】
このような不正行為を防止するため、従来の遊技機には、次のようなものがあった。例えば、特許文献１に記載の遊技機では、主制御基板は、制御コマンドを生成してサブ制御基板に送信する第１送信手段と、第１送信手段が所定期間内に送信した制御コマンドのチェックサムを状態監視コマンドとして所定のタイミングで送信する第２送信手段とを備えている。また、サブ制御基板が、所定期間内に受信した制御コマンドのチェックサムと、所定のタイミングで受信した状態監視コマンドとを比較することで、所定期間内に送信された制御コマンドの正当性を検証している。すなわち、特許文献１に記載の遊技機は、制御コマンドの正当性を検証するための状態監視コマンドを所定のタイミングで送信することで、上記不正行為の防止を図っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１８０９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の遊技機では、通常の制御コマンドとは異なるデータ形式あるいはデータ量を有する状態監視コマンドを、所定のタイミングで単独で送信している。よって、不正行為を働こうとする者（以下、「不正者」という）が、状態監視コマンドの送信タイミングを容易に知り得て、窃取することができるというおそれがあった。また、特許文献１に記載の遊技機では、所定期間内に送信した制御コマンドのチェックサムを状態監視コマンドとしている。よって、状態監視コマンドの送信タイミングを知った不正者が、所定期間内の制御コマンドとそのチェックサムを取得して比較することで、状態監視コマンドの内容を容易に解析することができるというおそれがあった。
【０００６】
また、特許文献１に記載の遊技機では、セキュリティ機能の追加を実現するために、状態監視コマンドを送信するという通常の処理とは異なる処理をわざわざ追加しており、主制御基板の制御処理が複雑化している。そのため、特許文献１に記載の遊技機では、主制御基板のＣＰＵが実行するプログラムのコードサイズが増大し、ＣＰＵの処理負荷が増大する。また、遊技機においては、公共性のある遊技ならではの規制により主制御基板のＲＯＭやＲＡＭの容量が制限されており、遊技機メーカーには、限られたリソースを演出処理に係るプログラムにより多く割当てたいという要望がある。よって、遊技機にセキュリティ機能を追加することで、主制御基板のＣＰＵの処理負荷やプログラムのコードサイズが増大する問題は看過できない。
【０００７】
また、セキュリティ機能の追加をハードウェアで実現しようとする場合、処理負荷やコードサイズの増大は抑制できる。しかしながら、既存の主制御基板にハードウェアで新たに機能を追加する場合、当該ハードウェアに関連するＣＰＵや周辺回路の構成も変更しなければならず、遊技機の開発コストや開発時間の増大を招き、遊技機メーカーにとって大きな負担となる。そのため、従来の技術では、実効性のあるセキュリティ機能を既存の遊技機に対し、比較的簡易に追加したいという遊技機メーカーの要望に応えることができない。
【０００８】
本発明は、上記事情に鑑みてなされたものであり、従来にない簡易な手段により上記不正行為を防止してセキュリティ強度を向上させるとともに、処理負荷やコードサイズの増大を抑制しながら比較的簡易に追加することのできるセキュリティ機能を有する遊技機を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために本発明は、制御コマンドを出力する主制御部と前記制御コマンドに基づく処理を行う周辺制御部とを含む遊技機であって、前記主制御部は、記憶部に記憶された所定の遊技情報に応じた処理を行って前記制御コマンドを生成し、生成した制御コマンドを予め取り決められた出力制御方式で出力する演算処理部と、前記演算処理部に後続して設けられており、前記演算処理部によって出力された制御コマンドに付加され該制御コマンドの正当性を検査するための誤り検査値を生成し、生成した誤り検査値を前記制御コマンドへ付加して出力する第１検査値生成部と、前記第１検査値生成部に後続して設けられており、前記誤り検査値が付加された制御コマンドを前記周辺制御部へ送信する送信部と、を備え、前記周辺制御部は、前記第１検査値生成部によって生成された誤り検査値に対応する検証用の誤り検査値を生成する第２検査値生成部と、前記送信部によって送信された誤り検査値と前記第２検査値生成部によって生成された誤り検査値とを比較して前記送信部によって送信された制御コマンドの正当性の検査を行う検査部と、前記送信部によって送信された制御コマンドに基づく処理を行うと共に、前記検査の結果に応じた処理を行う処理部と、を備え、前記第１検査値生成部は、前記演算処理部によって出力された制御コマンドを入力し、入力した制御コマンドを予め指定されたタイミングで出力するバッファ手段と、前記バッファ手段によって出力された制御コマンドを入力し、入力した制御コマンドへ付加する誤り検査値のビット列を変換する際の変換方式、又は入力した制御コマンドより後に前記演算処理部によって出力される制御コマンドへ付加する誤り検査値のビット列を変換する際の変換方式を、入力した制御コマンドに基づいて、予め取り決められた異なる複数の変換方式のうちのいずれかに決定し、決定した変換方式を示す変換方式情報を、前記タイミングに応じて出力する決定手段と、前記バッファ手段によって出力された制御コマンドを入力し、入力した制御コマンドより過去に前記演算処理部によって出力された制御コマンドを用いて生成された誤り検査値を、前記タイミングに応じて出力する生成手段と、前記生成手段によって出力された誤り検査値と前記決定手段によって出力された変換方式情報とを入力し、入力した誤り検査値のビット列を、入力した変換方式情報が示す変換方式で変換し、ビット列が変換された誤り検査値を、前記タイミングに応じて出力する変換手段と、前記バッファ手段によって出力された制御コマンドと前記変換手段によって出力された誤り検査値とを入力し、入力した該制御コマンドに、入力した該誤り検査値を付加して、該誤り検査値が付加された該制御コマンドを、前記演算処理部において予め取り決められた前記出力制御方式と同じ出力制御方式で、前記タイミングに応じて出力する付加手段と、を有し、前記送信部は、前記付加手段によって出力された前記誤り検査値が付加された前記制御コマンドを、前記周辺制御部へ送信することを特徴とする。
【発明の効果】
【００１０】
本発明は、セキュリティ機能として主制御部に対する認証機能を追加するべく、主制御部が備える誤り検査値付加機能をハードウェアで構成し、送信する制御コマンドに対して当該制御コマンドより過去に生成された制御コマンドの誤り検査値を付加して送信する。このとき、本発明では、誤り検査値生成のための制御コマンドを新たに設けたり暗号化処理等を新たに設けたりせずとも、既存の遊技機が備える制御手段を活用することによって実効性のある認証機能の追加を実現している。このような従来にない簡易な方法を適用することにより、制御コマンドとそれに付加された誤り検査値の関係を不正者が解析することを困難にし、簡易な方法で遊技機のセキュリティ強度を向上することができる。更に、セキュリティ機能の追加に伴って増大する主制御部のＣＰＵの処理負荷やコードサイズを最大限抑制することができる。しかも、このようなセキュリティ機能を、既存の遊技機に対し、比較的簡易に追加することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る遊技機の外観構成を示す正面図である。
【図２】本発明の実施形態に係る遊技機のガラス枠を開放させた状態の外観構成を示す斜視図である。
【図３】本発明の実施形態に係る遊技機の裏面側の外観構成を示す斜視図である。
【図４】本発明の実施形態に係る遊技機の内部構成を示すブロック図である。
【図５】本発明の実施形態に係る遊技機を構成する主制御部の認証処理に関する構成を示すブロック図である。
【図６】本発明の実施形態に係る遊技機を構成する主制御部のメインＲＯＭおよびブートＲＯＭのメモリマップを説明するための概略図である。
【図７】本発明の実施形態に係る遊技機を構成する主制御部が出力する制御コマンドへの誤り検査値の付加手順を説明するための概略図である。
【図８】本発明の実施形態に係る遊技機を構成する演出制御部の認証処理に関する構成を示すブロック図である。
【図９】本発明の実施形態に係る遊技機を構成する主制御部から演出制御部へ送信される制御コマンドの種別を示す図である。
【図１０】本発明の実施形態に係る遊技機を構成する主制御部によるメイン処理におけるフローチャートを示す図である。
【図１１】本発明の実施形態に係る遊技機を構成する主制御部による割込処理におけるフローチャートを示す図である。
【図１２】本発明の実施形態に係る遊技機を構成する主制御部による特図特電制御処理におけるフローチャートを示す図である。
【図１３】本発明の実施形態に係る遊技機を構成する主制御部による特別図柄記憶判定処理におけるフローチャートを示す図である。
【図１４】本発明の実施形態に係る遊技機を構成する主制御部による起動時のブート処理におけるフローチャートを示す図である。
【図１５】本発明の実施形態に係る遊技機を構成する主制御部によるコマンド送信処理におけるフローチャートを示す図である。
【図１６】本発明の実施形態に係る遊技機を構成する演出制御部によるメイン処理におけるフローチャートを示す図である。
【図１７】本発明の実施形態に係る遊技機を構成する演出制御部による割込処理におけるフローチャートを示す図である。
【図１８】本発明の実施形態に係る遊技機を構成する演出制御部によるコマンド解析処理１におけるフローチャートを示す図である。
【図１９】本発明の実施形態に係る遊技機を構成する演出制御部によるコマンド解析処理２におけるフローチャートを示す図である。
【図２０】本発明の実施形態に係る遊技機を構成する演出制御部による誤り検査処理におけるフローチャートを示す図である。
【発明を実施するための形態】
【００１２】
本発明を実施するための形態について、図面を参照しながら説明する。具体的には、本発明の実施形態に係る遊技機の１つであるパチンコ遊技機１（以下、「遊技機１」という）について説明する。
【００１３】
［遊技機の構成］
これより、本発明の一実施形態に係る遊技機１の構成について説明する。
図１は、本実施形態に係る遊技機１の外観構成を示す正面図である。図２は、本実施形態に係る遊技機１のガラス枠を開放させた状態の外観構成を示す斜視図である。図３は、本実施形態に係る遊技機１の裏面側の外観構成を示す斜視図である。
【００１４】
遊技機１は、遊技店の島設備に取り付けられる外枠６０と、その外枠６０と回動可能に支持されたガラス枠５０とが備えられている（図１、図２参照）。また、外枠６０には、遊技球２００が流下する遊技領域６が形成された遊技盤２が設けられている。ガラス枠５０には、回動操作されることにより遊技領域６に向けて遊技球を発射させる操作ハンドル３と、スピーカからなる音声出力装置３２と、複数のランプを有する演出用照明装置３４と、押圧操作により演出態様を変更させるための演出ボタン３５とが設けられている。
【００１５】
更に、ガラス枠５０には、複数の遊技球２００を貯留する受け皿４０が設けられており、この受け皿４０は、操作ハンドル３の方向側に遊技球２００が流下するように下りの傾斜を有している（図２参照）。この受け皿４０の下りの傾斜の端部には、遊技球を受け入れる図示しない受入口が設けられており、この受入口に受け入れられた遊技球は、玉送りソレノイド４ｂが駆動することにより、ガラス枠５０の裏面に設けられた玉送り開口部４１へ１個ずつ送り出される。そして、玉送り開口部４１へ送り出された遊技球は、打出部材４ｃの方向に向けて下り傾斜を有している発射レール４２により、発射レール４２の下り傾斜の端部に誘導される。発射レール４２の下り傾斜の端部の上方には、遊技球を停留させるストッパー４３が設けられており、玉送り開口部４１から送り出された遊技球２００は、発射レール４２の下り傾斜の端部で１個の遊技球が停留されることになる（図２参照）。
【００１６】
そして、遊技者が操作ハンドル３を回動させると、操作ハンドル３に直結している発射ボリューム３ｂ（図４参照）も回動し、発射ボリューム３ｂにより遊技球の発射強度が調整され、調整された発射強度で発射用ソレノイド４ａ（図４参照）に直結された打出部材４ｃが回転する。この打出部材４ｃが回転することで、打出部材４ｃにより発射レール４２の下り傾斜の端部に貯留されている遊技球２００が打ち出され、遊技球が遊技領域６に発射されることとなる。
【００１７】
上記のようにして発射された遊技球は、発射レール４２からレール５ａ、５ｂ間を上昇して玉戻り防止片５ｃを超えると、遊技領域６に到達し、その後遊技領域６内を落下する。このとき、遊技領域６に設けられた複数の釘や風車によって、遊技球は予測不能に落下することとなる。
【００１８】
また、上記遊技領域６には、複数の一般入賞口１２が設けられている。これら各一般入賞口１２には、一般入賞口検出スイッチ１２ａ（図４参照）が設けられており、この一般入賞口検出スイッチ１２ａが遊技球の入賞を検出すると、所定の賞球（例えば１０個の遊技球）が払い出される。
【００１９】
また、上記遊技領域６の中央下側の領域には、遊技球が入球可能な始動領域を構成する第１始動口１４および第２始動口１５と、遊技球が入球可能な第２大入賞口１７とが設けられている。
【００２０】
この第２始動口１５は、一対の可動片１５ｂを有しており、これら一対の可動片１５ｂが閉状態に維持される態様（以下、「第１の態様」という）と、一対の可動片１５ｂが開状態となる態様（以下、「第２の態様」という）とに可動制御される。なお、第２始動口１５が上記第１の態様に制御されているときには、当該第２始動口１５の真上に位置する第２大入賞口１７の入賞部材が障害物となって、遊技球の受入れを不可能としている。一方で、第２始動口１５が上記第２の態様に制御されているときには、上記一対の可動片１５ｂが受け皿として機能し、第２始動口１５への遊技球の入賞が容易となる。つまり、第２始動口１５は、第１の態様にあるときには遊技球の入賞機会がなく、第２の態様にあるときには遊技球の入賞機会が増すこととなる。
【００２１】
ここで、第１始動口１４には遊技球の入球を検出する第１始動口検出スイッチ１４ａ（図４参照）が設けられ、第２始動口１５には遊技球の入球を検出する第２始動口検出スイッチ１５ａ（図４参照）が設けられている。そして、第１始動口検出スイッチ１４ａまたは第２始動口検出スイッチ１５ａが遊技球の入球を検出すると、特別図柄判定用乱数値等を取得し、後述する大当たり遊技を実行する権利獲得の抽選（以下、「大当たりの抽選」という）が行われる。また、第１始動口検出スイッチ１４ａまたは第２始動口検出スイッチ１５ａが遊技球の入球を検出した場合にも、所定の賞球（例えば３個の遊技球）が払い出される。
【００２２】
また、第２大入賞口１７は、遊技盤２に形成された開口部から構成されている。この第２大入賞口１７の下部には、遊技盤面側からガラス板５２側に突出可能な第２大入賞口開閉扉１７ｂを有しており、この第２大入賞口開閉扉１７ｂが遊技盤面側に突出する開放状態と、遊技盤面に埋没する閉鎖状態とに可動制御される。そして、第２大入賞口開閉扉１７ｂが遊技盤面に突出していると、遊技球を第２大入賞口１７内に導く受け皿として機能し、遊技球が第２大入賞口１７に入球可能となる。この第２大入賞口１７には第２大入賞口検出スイッチ１７ａ（図４参照）が設けられており、この第２大入賞口検出スイッチ１７ａが遊技球の入球を検出すると、予め設定された賞球（例えば１５個の遊技球）が払い出される。
【００２３】
更に、上記遊技領域６の右側の領域には、遊技球が通過可能な普通領域を構成する普通図柄ゲート１３と、遊技球が入球可能な第１大入賞口１６とが設けられている。
このため、操作ハンドル３を大きく回動させ、強い力で打ち出された遊技球でないと、普通図柄ゲート１３と第１大入賞口１６とには遊技球が、通過または入賞しないように構成されている。特に、後述する時短遊技状態に移行したとしても、遊技領域６の左側の領域に遊技球を流下させてしまうと、普通図柄ゲート１３に遊技球が通過しないことから、第２始動口１５にある一対の可動片１５ｂが開状態とならず、第２始動口１５に遊技球が入賞することが困難になるように構成されている。
【００２４】
この普通図柄ゲート１３には、遊技球の通過を検出するゲート検出スイッチ１３ａ（図４参照）が設けられており、このゲート検出スイッチ１３ａが遊技球の通過を検出すると、普通図柄判定用乱数値を取得し、後述する「普通図柄の抽選」が行われる。
【００２５】
第１大入賞口１６は、通常は第１大入賞口開閉扉１６ｂによって閉状態に維持されており、遊技球の入球を不可能としている。これに対して、後述する特別遊技が開始されると、第１大入賞口開閉扉１６ｂが開放されるとともに、この第１大入賞口開閉扉１６ｂが遊技球を第１大入賞口１６内に導く受け皿として機能し、遊技球が第１大入賞口１６に入球可能となる。第１大入賞口１６には第１大入賞口検出スイッチ１６ａ（図４参照）が設けられており、この第１大入賞口検出スイッチ１６ａが遊技球の入球を検出すると、予め設定された賞球（例えば１５個の遊技球）が払い出される。
【００２６】
更には、遊技領域６の最下部であって遊技領域６の最下部の領域には、一般入賞口１２、第１始動口１４、第２始動口１５、第１大入賞口１６および第２大入賞口１７のいずれにも入球しなかった遊技球を排出するためのアウト口１１が設けられている。
【００２７】
また、遊技領域６の中央には、遊技球の流下に影響を与える飾り部材７が設けられている。この飾り部材７の略中央部分には、液晶表示装置３１が設けられており、この液晶表示装置３１の上方には、ベルトの形をした演出用駆動装置３３が設けられている。
なお、本実施形態においては、液晶表示装置３１を液晶表示器として用いているが、有機ＥＬディスプレイを用いてもよいし、プロジェクター、円環状の構造物からなるリール、いわゆる７セグメントＬＥＤ、ドットマトリクス等の表示装置等を用いてもよい。
【００２８】
この液晶表示装置３１は、遊技が行われていない待機中に画像を表示したり、遊技の進行に応じた画像を表示したりする。なかでも、後述する大当たりの抽選結果を報知するための３個の演出図柄３６が表示され、特定の演出図柄３６の組合せ（例えば、７７７等）が停止表示されることにより、大当たりの抽選結果として大当たりが報知される。
より具体的には、第１始動口１４または第２始動口１５に遊技球が入球したときには、３個の演出図柄３６をそれぞれスクロール表示するとともに、所定時間経過後に当該スクロールを停止させて、演出図柄３６を停止表示するものである。また、この演出図柄３６の変動表示中に、さまざまな画像やキャラクタ等を表示することによって、大当たりに当選するかもしれないという高い期待感を遊技者に与えるようにもしている。
【００２９】
上記演出用駆動装置３３は、その動作態様によって遊技者に期待感を与えるものである。演出用駆動装置３３は、例えば、ベルトが下方に移動したり、ベルト中央部の回転部材が回転したりする動作を行う。これら演出用駆動装置３３の動作態様によって、遊技者にさまざまな期待感を与えるようにしている。
【００３０】
更に、上記の各種の演出装置に加えて、音声出力装置３２は、バックグラウンドミュージック、サウンドエフェクト等を出力し、サウンドによる演出を行い、演出用照明装置３４は、各ランプの光の照射方向や発光色を変更して、照明による演出を行うようにしている。
【００３１】
また、演出ボタン３５は、例えば、上記液晶表示装置３１に当該演出ボタン３５を操作するようなメッセージが表示されたときのみ有効となる。演出ボタン３５には、演出ボタン検出スイッチ３５ａ（図４参照）が設けられており、この演出ボタン検出スイッチ３５ａが遊技者の操作を検出すると、この操作に応じてさらなる演出が実行される。
【００３２】
遊技領域６の右下方には、第１特別図柄表示装置２０、第２特別図柄表示装置２１、普通図柄表示装置２２、第１特別図柄保留表示器２３、第２特別図柄保留表示器２４、普通図柄保留表示器２５が設けられている。
【００３３】
上記第１特別図柄表示装置２０は、第１始動口１４に遊技球が入球したことを契機として行われた大当たりの抽選結果を報知するものであり、７セグメントのＬＥＤで構成されている。つまり、大当たりの抽選結果に対応する特別図柄が複数設けられており、この第１特別図柄表示装置２０に大当たりの抽選結果に対応する特別図柄を表示することによって、抽選結果を遊技者に報知するようにしている。例えば、大当たりに当選した場合には「７」が表示され、ハズレであった場合には「−」が表示される。このようにして表示される「７」や「−」が特別図柄となるが、この特別図柄はすぐに表示されるわけではなく、所定時間変動表示された後に、停止表示されるようにしている。
【００３４】
ここで、「大当たりの抽選」とは、第１始動口１４または第２始動口１５に遊技球が入球したときに、特別図柄判定用乱数値を取得し、取得した特別図柄判定用乱数値が「大当たり」に対応する乱数値であるか、「小当たり」に対応する乱数値であるかの判定する処理をいう。この大当たりの抽選結果は即座に遊技者に報知されるわけではなく、第１特別図柄表示装置２０において特別図柄が点滅等の変動表示を行い、所定の変動時間を経過したところで、大当たりの抽選結果に対応する特別図柄が停止表示して、遊技者に抽選結果が報知されるようにしている。なお、第２特別図柄表示装置２１は、第２始動口１５に遊技球が入球したことを契機として行われた大当たりの抽選結果を報知するためのもので、その表示態様は、上記第１特別図柄表示装置２０における特別図柄の表示態様と同一である。
【００３５】
また、本実施形態において「大当たり」というのは、第１始動口１４または第２始動口１５に遊技球が入球したことを条件として行われる大当たりの抽選において、大当たり遊技を実行する権利を獲得したことをいう。「大当たり遊技」においては、第１大入賞口１６または第２大入賞口１７が開放されるラウンド遊技を計１５回行う。各ラウンド遊技における第１大入賞口１６または第２大入賞口１７の最大開放時間については予め定められた時間が設定されており、この間に第１大入賞口１６または第２大入賞口１７に所定個数の遊技球（例えば９個）が入球すると、１回のラウンド遊技が終了となる。つまり、「大当たり遊技」は、第１大入賞口１６または第２大入賞口１７に遊技球が入球するとともに、当該入球に応じた賞球を遊技者が獲得できる遊技である。
【００３６】
本実施形態では、「大当たりの抽選」においては、その当選確率により２つの遊技状態が設定されている。すなわち、当選確率が１／２９９．５に設定された「低確率遊技状態」と、当選確率が１／２９．９５に設定された「高確率遊技状態」である。また、「大当たり遊技」においても、複数種類の大当たり遊技が設定されている。例えば、「長当たり遊技」となれば、第１大入賞口１６が、１ラウンド遊技毎に、２９．０００秒間×１回開放（×１５ラウンド）される。「短当たり遊技」となれば、第２大入賞口１７が、１ラウンド遊技毎に、０．０５２秒間×１回（×１５ラウンド）開放される。「発展当たり遊技」となれば、第２大入賞口１７が、最初の１ラウンド遊技では０．０５２秒間×３回開放され、２ラウンド目以降は、１ラウンド遊技毎に２９．０００秒間×１回（×１４ラウンド）開放される。
また、「小当たり」の場合は、当選確率が１／１４９．７５の１つの遊技状態が設定されている。また、「小当たり遊技」となれば、ラウンド遊技ではないものの、第２大入賞口１７が０．０５２秒間×１５回開放される。なお、本実施形態では、「大当たり遊技」と「小当たり遊技」とを総称して「特別遊技」という。
【００３７】
また、普通図柄表示装置２２は、普通図柄ゲート１３を遊技球が通過したことを契機として行われる普通図柄の抽選結果を報知するためのものである。詳しくは後述するが、この普通図柄の抽選によって当たりに当選すると普通図柄表示装置２２が点灯し、その後、上記第２始動口１５が所定時間、第２の態様に制御される。
【００３８】
ここで、「普通図柄の抽選」とは、普通図柄ゲート１３に遊技球が通過したときに、普通図柄判定用乱数値を取得し、取得した普通図柄判定用乱数値が「当たり」に対応する乱数値であるかどうかを判定する処理をいう。この普通図柄の抽選結果についても、普通図柄ゲート１３を遊技球が通過して即座に抽選結果が報知されるわけではなく、普通図柄表示装置２２において普通図柄が点滅等の変動表示を行い、所定の変動時間を経過したところで、普通図柄の抽選結果に対応する普通図柄が停止表示して、遊技者に抽選結果が報知されるようにしている。
【００３９】
更に、特別図柄の変動表示中や後述する特別遊技中等、第１始動口１４または第２始動口１５に遊技球が入球して、即座に大当たりの抽選が行えない場合には、一定の条件のもとで、大当たりの抽選の権利が保留される。より詳細には、第１始動口１４に遊技球が入球したときに取得された特別図柄判定用乱数値を第１保留として記憶し、第２始動口１５に遊技球が入球したときに取得された特別図柄判定用乱数値を第２保留として記憶する。
これら両保留は、それぞれ上限保留個数を４個に設定し、その保留個数は、それぞれ第１特別図柄保留表示器２３と第２特別図柄保留表示器２４とに表示される。なお、第１保留が１つの場合には、第１特別図柄保留表示器２３の左側のＬＥＤが点灯し、第１保留が２つの場合には、第１特別図柄保留表示器２３の２つのＬＥＤが点灯する。また、第１保留が３つの場合には、第１特別図柄保留表示器２３の左側のＬＥＤが点滅するとともに右側のＬＥＤが点灯し、第１保留が４つの場合には、第１特別図柄保留表示器２３の２つのＬＥＤが点滅する。また、第２特別図柄保留表示器２４においても、上記と同様に第２保留の保留個数が表示される。
そして、普通図柄の上限保留個数も４個に設定されており、その保留個数が、上記第１特別図柄保留表示器２３および第２特別図柄保留表示器２４と同様の態様によって、普通図柄保留表示器２５において表示される。
【００４０】
ガラス枠５０は、遊技盤２の前方（遊技者側）において遊技領域６を視認可能に覆うガラス板５２を支持している。なお、ガラス板５２は、ガラス枠５０に対して着脱可能に固定されている。
【００４１】
また、ガラス枠５０は、左右方向の一端側（たとえば遊技機１に正対して左側）においてヒンジ機構部５１を介して外枠６０に連結されており、ヒンジ機構部５１を支点として左右方向の他端側（たとえば遊技機１に正対して右側）を外枠６０から開放させる方向に回動可能とされている。ガラス枠５０は、ガラス板５２とともに遊技盤２を覆い、ヒンジ機構部５１を支点として扉のように回動することによって、遊技盤２を含む外枠６０の内側部分を開放することができる。ガラス枠５０の他端側には、ガラス枠５０の他端側を外枠６０に固定するロック機構が設けられている。ロック機構による固定は、専用の鍵によって解除することが可能とされている。また、ガラス枠５０には、ガラス枠５０が外枠６０から開放されているか否かを検出する扉開放スイッチ１３３（図４参照）も設けられている。
【００４２】
遊技機１の裏面には、主制御部１１０が搭載された主制御基板、演出制御部１２０が搭載された演出制御基板、払出制御部１３０が搭載された払出制御基板、電源部１７０が搭載された電源基板、遊技情報出力端子板３０などが設けられている。また、電源部１７０に遊技機１に電力を給電するための電源プラグ１７１や、図示しない電源スイッチが設けられている。
【００４３】
［遊技機の内部構成］
これより、本発明の実施形態に係る遊技機１の遊技進行に係る処理を制御する制御手段について説明する。
図４は、本実施形態に係る遊技機１の内部構成を示すブロック図である。
【００４４】
主制御部１１０は、遊技の基本動作を制御する主制御手段であり、第１始動口検出スイッチ１４ａ等の各種検出信号を入力して、第１特別図柄表示装置２０や第１大入賞口開閉ソレノイド１６ｃ等を駆動させて遊技を制御するものである。
【００４５】
この主制御部１１０は、メインＣＰＵ１１０ａ、メインＲＯＭ１１０ｂ、メインＲＡＭ１１０ｃ、ブートＲＯＭ１１０ｄから少なくとも構成されるワンチップマイコン１１０ｍと、検査値生成部５００と、送信部５５０と、主制御用の入力ポートと出力ポート（図示せず）とを少なくとも備えている。
【００４６】
この主制御用の入力ポートには、払出制御部１３０、一般入賞口１２に遊技球が入球したことを検知する一般入賞口検出スイッチ１２ａ、普通図柄ゲート１３に遊技球が入球したことを検知するゲート検出スイッチ１３ａ、第１始動口１４に遊技球が入球したことを検知する第１始動口検出スイッチ１４ａ、第２始動口１５に遊技球が入球したことを検知する第２始動口検出スイッチ１５ａ、第１大入賞口１６に遊技球が入球したことを検知する第１大入賞口検出スイッチ１６ａ、第２大入賞口１７に遊技球が入球したことを検知する第２大入賞口検出スイッチ１７ａが接続されている。この主制御用の入力ポートによって、各種信号が主制御部１１０に入力される。
【００４７】
また、主制御用の出力ポートには、払出制御部１３０、第２始動口１５の一対の可動片１５ｂを開閉動作させる始動口開閉ソレノイド１５ｃ、第１大入賞口開閉扉１６ｂを動作させる第１大入賞口開閉ソレノイド１６ｃ、第２大入賞口開閉扉１７ｂを動作させる第２大入賞口開閉ソレノイド１７ｃ、特別図柄を表示する第１特別図柄表示装置２０と第２特別図柄表示装置２１、普通図柄を表示する普通図柄表示装置２２、特別図柄の保留球数を表示する第１特別図柄保留表示器２３と第２特別図柄保留表示器２４、普通図柄の保留球数を表示する普通図柄保留表示器２５、外部情報信号を出力する遊技情報出力端子板３０が接続されている。この主制御用の出力ポートによって、各種信号が出力される。
【００４８】
主制御部１１０のメインＣＰＵ１１０ａは、各検出スイッチや内部機能として組み込まれている図示しないタイマ等からの入力信号に基づいて、メインＲＯＭ１１０ｂに記憶されたプログラムを読み出して演算処理を行うとともに、演算処理の結果に応じて、主制御部１１０を構成する各構成部に対する制御指示（以下、「制御信号」という）や主制御部１１０以外の他の制御部に対する制御コマンドを出力したりする。
【００４９】
主制御部１１０のメインＲＯＭ１１０ｂには、遊技進行に係る処理の内容や手順を記述した遊技処理用プログラムや、各種の遊技の決定に必要な固定データ、テーブルが予め記憶されている。
メインＲＯＭ１１０ｂに記憶されたテーブルとして一例を挙げれば、大当たり抽選に参照される大当たり判定テーブル、普通図柄の抽選に参照される当たり判定テーブル、特別図柄の停止図柄を決定する図柄決定テーブル、大当たり終了後の遊技状態を決定するための大当たり遊技終了時設定データテーブル、大入賞口開閉扉の開閉条件を決定する特別電動役物作動態様決定テーブル、大入賞口開放態様テーブル、特別図柄の変動パターンを決定する変動パターン決定テーブルなどがある。
【００５０】
また、メインＲＯＭ１１０ｂには、検査値生成部５００を介して送信部５５０から制御コマンドを送信する処理の内容や手順を記述した認証処理用プログラムや、認証処理用プログラムを実行する際に使用される固定データなどが予め記憶されている。また、メインＲＯＭ１１０ｂには、電源投入時などの遊技機１のリセット時に行われる主制御部１１０のブート処理中に、ワンチップマイコン１１０ｍの内蔵回路や周辺回路等に対して設定される初期値（いわゆるハードウェアパラメータ）が予め記憶されている。また、メインＲＯＭ１１０ｂには、遊技機１固有の情報である固有情報などが予め記憶されている。
【００５１】
主制御部１１０のブートＲＯＭ１１０ｄには、ワンチップマイコン１１０ｍの内蔵回路や周辺回路等の初期化および初期値の設定処理（以下、「初期値設定処理」という）を含む、メインＣＰＵ１１０ａが実行するブート処理の内容や手順を記述したブート処理用プログラムや、ブート処理用プログラムの実行の際に使用される固定データが記憶されている。このブート処理用プログラムは、メインＣＰＵ１１０ａの起動直後に立ち上るように設定されている。
【００５２】
主制御部１１０のメインＲＡＭ１１０ｃは、メインＣＰＵ１１０ａの演算処理時におけるデータのワークエリアとして機能し、複数の記憶領域を有している。
メインＲＡＭ１１０ｃが有する記憶領域として一例を挙げれば、普通図柄保留数（Ｇ）記憶領域、普通図柄保留記憶領域、普通図柄データ記憶領域、第１特別図柄保留数（Ｕ１）記憶領域、第２特別図柄保留数（Ｕ２）記憶領域、第１特別図柄乱数値記憶領域、第２特別図柄乱数値記憶領域、ラウンド遊技回数（Ｒ）記憶領域、開放回数（Ｋ）記憶領域、大入賞口入球数（Ｃ）記憶領域、遊技状態記憶領域（高確率遊技フラグ記憶領域等と時短遊技フラグ記憶領域）、高確率遊技回数（Ｘ）カウンタ、時短回数（Ｊ）カウンタ、遊技状態バッファ、停止図柄データ記憶領域、送信データ用記憶領域、特別図柄時間カウンタ、特別遊技タイマカウンタなど各種のタイマカウンタなどがある。
【００５３】
主制御部１１０の検査値生成部５００は、メインＣＰＵ１１０ａと送信部５５０との間に設けられている。検査値生成部５００は、主制御部１１０が制御コマンドを送信する際に、制御コマンドの正当性を検査して主制御部１１０の正当性を認証するための誤り検査値を生成し、制御コマンドに付加する機能（以下、「誤り検査値付加機能」という）を有している。具体的には、検査値生成部５００は、メインＣＰＵ１１０ａが送信部５５０にて制御コマンドを送信する処理（以下、「コマンド送信処理」という）を行う際に、メインＣＰＵ１１０ａから制御コマンドを受け取る。そして、検査値生成部５００は、受け取った制御コマンドの誤り検査値を生成する処理（以下、「検査値生成処理という」）を行う。そして、検査値生成部５００は、生成した誤り検査値を制御コマンドに付加する処理（以下、「検査値付加処理」という）を行った後、誤り検査値付きの制御コマンドを送信部５５０へ出力する。
【００５４】
主制御部１１０の送信部５５０は、上記主制御用の出力ポートの中でも、特に、主制御部１１０に対する認証機能を担うよう予め定められた制御部（後述する演出制御部１２０や払出制御部１３０等）への制御コマンドの出力に用いられる。具体的には、送信部５５０は、検査値生成部５００に後続して設けられており、検査値生成部５００から出力された誤り検査値付きの制御コマンドを演出制御部１２０や払出制御部１３０等へ送信する。
【００５５】
遊技情報出力端子板３０は、主制御部１１０において生成された外部情報信号を遊技店のホールコンピュータ等に出力するための基板である。遊技情報出力端子板３０は、主制御部１１０と配線接続され、外部情報を遊技店のホールコンピュータ等と接続をするためのコネクタが設けられている。
【００５６】
電源部１７０は、コンデンサからなるバックアップ電源を備えており、遊技機１に電源電圧を供給するとともに、遊技機１に供給する電源電圧を監視し、電源電圧が所定値以下となったときに、電断検知信号を主制御部１１０へ出力する。より具体的には、電源電圧が、設定値以下を示すために電断検知信号がローレベルとなり一定時間経過すると、リセット信号がローレベルとなり、メインＣＰＵ１１０ａは動作を停止する処理を行う。その後、電源電圧が、設定値以上を示すために電断検知信号がハイレベルとなり一定時間経過すると、リセット信号がハイレベルとなり、メインＣＰＵ１１０ａは動作を開始する処理を行う。バックアップ電源はコンデンサに限らず、例えば、電池でもよく、コンデンサと電池とを併用して用いてもよい。
【００５７】
演出制御部１２０は、主に遊技中や待機中等の各演出を制御する。この演出制御部１２０は、サブＣＰＵ１２０ａ、サブＲＯＭ１２０ｂ、サブＲＡＭ１２０ｃを備えており、主制御部１１０に対して、当該主制御部１１０から演出制御部１２０への一方向に通信可能となるように設けられている。
【００５８】
サブＣＰＵ１２０ａは、主制御部１１０から送信された制御コマンド、または、上記演出ボタン検出スイッチ３５ａ、タイマからの入力信号に基づいて、サブＲＯＭ１２０ｂに記憶されたプログラムを読み出して演算処理を行うとともに、当該処理に基づいて、対応するデータをランプ制御部１４０または画像制御部１５０に送信する。サブＲＡＭ１２０ｃは、サブＣＰＵ１２０ａの演算処理時におけるデータのワークエリアとして機能する。
【００５９】
例えば、演出制御部１２０におけるサブＣＰＵ１２０ａは、主制御部１１０から送信された制御コマンドの１つである特別図柄の変動態様を示す変動パターン指定コマンドを受信すると、受信した変動パターン指定コマンドの内容を解析して、液晶表示装置３１、音声出力装置３２、演出用駆動装置３３、演出用照明装置３４に所定の演出を実行させるためのデータを生成し、かかるデータを画像制御部１５０やランプ制御部１４０へ送信する。
【００６０】
演出制御部１２０のサブＲＯＭ１２０ｂには、演出制御用のプログラムや各種の遊技の決定に必要なデータ、テーブルが記憶されている。
サブＲＯＭ１２０ｂに記憶されたテーブルとして一例を挙げれば、主制御部から受信した変動パターン指定コマンドに基づいて演出パターンを決定するための演出パターン決定テーブル、停止表示する演出図柄３６の組み合わせを決定するための演出図柄決定テーブルなどがある。
【００６１】
また、主制御部１１０に対する認証機能が演出制御部１２０に備えられている場合には、サブＲＯＭ１２０ｂには、サブＣＰＵ１２０ａにて行われる受信した制御コマンドへの誤り検査処理を含む認証処理の内容や手順を記述した認証処理用プログラムや、認証処理用プログラムを実行する際に使用される固定データ、および主制御部１１０のメインＲＯＭ１１０ｂに記憶された固有情報に対応する情報などが予め記憶されている。なお、主制御部１１０に対する認証機能が払出制御部１３０に備えられている場合には、後述する払出ＲＯＭに、上記演出制御部１２０の認証処理に関するプログラム等が記憶されている。また、これら認証処理に関する構成については後述する。
【００６２】
演出制御部１２０のサブＲＡＭ１２０ｃは、サブＣＰＵ１２０ａの演算処理時におけるデータのワークエリアとして機能し、複数の記憶領域を有している。
サブＲＡＭ１２０ｃが有する記憶領域として一例を挙げれば、遊技状態記憶領域、演出モード記憶領域、演出パターン記憶領域、演出図柄記憶領域などがある。
【００６３】
払出制御部１３０は、遊技球の払い出し制御を行う。この払出制御部１３０は、図示しない払出ＣＰＵ、払出ＲＯＭ、払出ＲＡＭから構成されるワンチップマイコンを備えており、主制御部１１０に対して、双方向に通信可能となるように設けられている。
【００６４】
払出ＣＰＵは、遊技球が払い出されたか否かを検知する払出球計数スイッチ１３２、扉開放スイッチ１３３、タイマからの入力信号に基づいて、払出ＲＯＭに記憶されたプログラムを読み出して演算処理を行うとともに、当該処理に基づいて、対応するデータを主制御部１１０に送信する。
【００６５】
また、払出制御部１３０の出力側には、遊技球の貯留部から所定数の遊技球を払い出すための払出装置の払出モータ１３１が接続されている。払出ＣＰＵは、主制御部１１０から送信された制御コマンドの１つである払出個数指定コマンドに基づいて、払出ＲＯＭから所定のプログラムを読み出して演算処理を行うとともに、払出装置の払出モータ１３１を制御して所定の遊技球を払い出す。このとき、払出ＲＡＭは、払出ＣＰＵの演算処理時におけるデータのワークエリアとして機能する。
【００６６】
ランプ制御部１４０は、遊技盤２に設けられた演出用照明装置３４を点灯制御したり、光の照射方向を変更するためのモータに対する駆動制御をしたりする。また、演出用駆動装置３３を動作させるソレノイドやモータ等の駆動源を通電制御する。このランプ制御部１４０は、演出制御部１２０に接続されており、演出制御部１２０から送信された各種のコマンドに基づいて、上記の各制御を行うこととなる。
【００６７】
画像制御部１５０は、液晶表示装置３１の画像表示制御を行うためのホストＣＰＵ、ホストＣＰＵのワークエリアとして機能する一時的な記憶領域を有するホストＲＡＭ、ホストＣＰＵの制御処理のプログラム等が記憶されたホストＲＯＭ、画像データが記憶されたＣＧＲＯＭ、画像データを描画するフレームバッファを有するＶＲＡＭ、画像プロセッサとなるＶＤＰ（Video Display Processor）と、音の制御を行う音制御回路とを備えている。
【００６８】
ホストＣＰＵは、演出制御部１２０から受信した演出パターン指定コマンドに基づいて、ＶＤＰにＣＧＲＯＭに記憶されている画像データを液晶表示装置３１に表示させる指示を行う。
ＶＤＰは、ホストＣＰＵからの指示に基づいて、ＣＧＲＯＭに記憶された画像データをＶＲＡＭのフレームバッファに描画する。次に、ＶＲＡＭにある表示用のフレームバッファに記憶された画像データに基づいて映像信号（ＲＧＢ信号等）を生成し、生成した映像信号を液晶表示装置に出力する。
【００６９】
音制御回路には、音声データが多数記憶されている音声ＲＯＭが備えられており、音制御回路が、演出制御部１２０から送信されたコマンドに基づいて所定のプログラムを読み出すとともに、音声出力装置３２における音声出力制御をする。
【００７０】
発射制御部１６０は、遊技球の発射制御を行う。この発射制御部１６０は、入力側にタッチセンサ３ａおよび発射ボリューム３ｂが接続されており、出力側に発射用ソレノイド４ａおよび玉送りソレノイド４ｂを接続している。発射制御部１６０は、タッチセンサ３ａからのタッチ信号を入力するとともに、発射ボリューム３ｂから供給された電圧に基づいて、発射用ソレノイド４ａや玉送りソレノイド４ｂを通電させる制御を行う。
【００７１】
タッチセンサ３ａは、操作ハンドル３の内部に設けられ、遊技者が操作ハンドル３に触れたことによる静電容量の変化を利用した静電容量型の近接スイッチから構成される。タッチセンサ３ａは、遊技者が操作ハンドル３に触れたことを検知すると、発射制御部１６０（図４参照）に発射用ソレノイド４ａの通電を許可するタッチ信号を出力する。発射制御部１６０は、大前提としてタッチセンサ３ａからタッチ信号の入力がなければ、遊技球２００を遊技領域６に発射させないように構成されている。
【００７２】
発射ボリューム３ｂは、操作ハンドル３が回動する回動部に直結して設けられ、可変抵抗器から構成される。発射ボリューム３ｂは、その発射ボリューム３ｂに印加された定電圧（例えば５Ｖ）を可変抵抗器により分圧して、分圧した電圧を発射制御部１６０に供給する（発射制御部１６０に供給する電圧を可変させる）。発射制御部１６０は、発射ボリューム３ｂにより分圧された電圧に基づいて、発射用ソレノイド４ａを通電して、発射用ソレノイド４ａに直結された打出部材４ｃを回転させることで、遊技球２００を遊技領域６に発射させる。
【００７３】
発射用ソレノイド４ａは、ロータリーソレノイドから構成され、発射用ソレノイド４ａには打出部材４ｃが直結されており、発射用ソレノイド４ａが回転することで、打出部材４ｃを回転させる。
【００７４】
ここで、発射用ソレノイド４ａの回転速度は、発射制御部１６０に設けられた水晶発振器の出力周期に基づく周波数から、約９９．９（回／分）に設定されている。これにより、１分間における発射遊技数は、発射ソレノイドが１回転する毎に１個発射されるため、約９９．９（個／分）となる。すなわち、１個の遊技球は約０．６秒毎に発射されることになる。
【００７５】
玉送りソレノイド４ｂは、直進ソレノイドから構成され、受け皿４０にある遊技球を、発射用ソレノイド４ａに直結された打出部材４ｃに向けて１個ずつ送り出す。
【００７６】
ここで、上記構成の演出制御部１２０、払出制御部１３０、ランプ制御部１４０、画像制御部１５０、および発射制御部１６０など、主制御部１１０からの制御コマンドに基づいて、若しくは当該制御コマンドに基づいて生成されるコマンドに従って遊技機１の制御処理を行う制御部を総称して「周辺制御部３００」という。また、演出制御部１２０が搭載された演出制御基板や払出制御部１３０が搭載された払出制御基板など、周辺制御部３００の各制御部が搭載された各制御基板を総称して「周辺制御基板」という。なお、ランプ制御部１４０および画像制御部１５０は、演出制御部１２０と同一の基板上に搭載することもできる。また、払出制御部１３０および発射制御部１６０は、主制御部１１０と同一の基板上に搭載することもできる。
【００７７】
［遊技機の認証処理に関する内部構成］
これより、上記構成の遊技機１が不正行為防止のために有するセキュリティ機能を実現する制御手段について説明する。
本実施形態に係る遊技機１のセキュリティ機能は、周辺制御部３００が主制御部１１０から送信された制御コマンドの正当性を検査し主制御部１１０の認証を行うことによって実現される。そのために主制御部１１０および周辺制御部３００が実行する処理を、通常の遊技進行に係る処理とは区別する意味で「認証処理」という。なお、本実施形態では、周辺制御部３００のうちの演出制御部１２０に、主制御部１１０に対する認証機能が備えられていることとして説明する。
【００７８】
具体的には、主制御部１１０は、今回のコマンド送信処理において、制御コマンドを生成して演出制御部１２０へ送信する際、当該制御コマンドより前（過去）に生成された制御コマンドを用いて誤り検査値を生成し、生成した誤り検査値を今回送信する制御コマンドに付加して送信する。一方、演出制御部１２０は、今回受信した制御コマンドに付加された誤り検査値と、当該制御コマンドより前（過去）に受信した制御コマンドを用いて生成した誤り検査値とを照合する。そして、両者が一致すると、今回受信した制御コマンドの正当性が認証され、主制御部１１０の認証に成功したと判断される。
【００７９】
なお、主制御部１１０が今回のコマンド送信処理において生成した制御コマンドより前（過去）に生成した制御コマンドは、主制御部１１０の所定の記憶領域（後述する生成手段５２０の格納回路５２２）に格納されている。同様に、演出制御部１２０が今回のコマンド送信処理において受信した制御コマンドより前（過去）に受信した制御コマンドは、演出制御部１２０の所定の記憶領域（後述する格納部６２２）に格納されている。
【００８０】
本実施形態では、今回のコマンド送信処理において生成された制御コマンドを制御コマンド（Ｐ）とし、当該制御コマンド（Ｐ）よりＮ個前（Ｎ；正の整数）に生成された制御コマンドを制御コマンド（Ｐ−Ｎ）とする。Ｐの値（Ｐ；正の整数）は、電源投入直後などの遊技機１のリセット時などにおいて、主制御部１１０や演出制御部１２０が初期化され、上記所定の記憶領域に格納しておいた過去の制御コマンドがクリアされた直後から、現在までに何個の制御コマンドが生成されたのかを示す値である（以下、Ｐを「生成個数」という）。
【００８１】
すなわち、本実施形態では、制御コマンド（１）は、上記所定の記憶領域に格納された制御コマンドがクリアされた直後に最初に生成された制御コマンドを意味し、制御コマンド（Ｐ）は、上記所定の記憶領域に格納された制御コマンドがクリアされてからＰ番目に生成された制御コマンドを意味する。なお、生成個数のＰの値は、公知のカウンタなどを用いて計数すればよい。本実施形態では、メインＲＡＭ１１０ｃに生成個数記憶領域（Ｐ）を設けておき、メインＣＰＵ１１０ａがコマンド送信処理の際に生成個数記憶領域（Ｐ）の値に１を加算して更新する。
【００８２】
そして、本実施形態では、今回のコマンド送信処理において生成された制御コマンド（Ｐ）に対して、これよりＮ個前に生成された制御コマンド（Ｐ−Ｎ）を用いて生成された誤り検査値（Ｐ−Ｎ）を付加し、誤り検査値（Ｐ−Ｎ）が付加された制御コマンド（Ｐ）を演出制御部１２０へ送信する。Ｎの値は、今回のコマンド送信処理において出力された制御コマンドに対して、何個前に生成された制御コマンドの誤り検査値を付加するのかということを示した値である（以下、Ｎを「遡及数」という）。
【００８３】
遡及数のＮの値の取り得る範囲は、上記所定の記憶領域である後述の格納回路５２２（および演出制御部１２０の後述する格納部６２２）の記憶容量によって制限されるものの、基本的には任意である。Ｎの値が大きければ、不正者にとっては、制御コマンドとそれに付加された誤り検査値との関係性を解析することがより困難となり、不正行為をより一層防止することができる。
【００８４】
なお、主制御部１１０が、制御コマンド（Ｐ）を生成する度に、演出制御部１２０へ送信するならば、遡及数のＮの値は、今回送信する制御コマンドに対して、何個前に送信された制御コマンドの誤り検査値を付加するのかということを取り決めておいた数であると考えることができ、本発明には、このような概念も含まれる。
【００８５】
また、本実施形態では、制御コマンド（Ｐ）に付加する誤り検査値（Ｐ−Ｎ）を生成した後に、生成した誤り検査値（Ｐ−Ｎ）のビット列に対してビット演算を行って、誤り検査値（Ｐ−Ｎ）のビット列を適宜変換する処理（以下、「ビット列変換処理」という）を施す。本実施形態では、誤り検査値（Ｐ−Ｎ）にビット列変換処理を施す際に、当該誤り検査値（Ｐ−Ｎ）のビット列に対して行うビット演算の方式（以下、「変換方式」という）として、誤り検査値（Ｐ−Ｎ）のビット列にビットローテート演算を行って当該ビット列を変換する方式を用いる。
【００８６】
また、誤り検査値（Ｐ−Ｎ）にビット列変換処理を施す際の変換方式として、複数の変換方式が予め用意されている。予め用意された変換方式の個数は、本発明では特に限定されないが、本実施形態では２つの変換方式が予め用意されているものとする。具体的には、本実施形態では、１回のビット列変換処理の中で行われるビットローテート演算において、ビット列を構成する各ビットを何ビット分だけシフトさせるのかを示す「シフト量」の取り決め方に応じて、２つの変換方式が予め用意されている。
【００８７】
より詳細には、シフト量が、予め主制御部１１０と演出制御部１２０との間で取り決められたルールに従って規則的に変動する変換方式（以下、「変換方式Ａ」という）と、シフト量が、予め主制御部１１０と演出制御部１２０との間で取り決められておらず、ランダムに変動する変換方式（以下、「変換方式Ｂ」という）との２つの変換方式である。本実施形態では、変換方式Ａでビット列変換処理を施す際のビットローテート演算において用いられるシフト量を「シフト量Ａ」といい、変換方式Ｂでビット列変換処理を施す際のビットローテート演算において用いられるシフト量を「シフト量Ｂ」という。
【００８８】
そして、本実施形態では、予め用意された上記２つの変換方式を適宜使い分けながら、誤り検査値（Ｐ−Ｎ）にビット列変換処理を施す。具体的には、デフォルトの変換方式として、変換方式Ａと変換方式Ｂのいずれか用いることと予め決定しておく。そして、誤り検査値（Ｐ−Ｎ）にビット列変換処理を施す際には、今回のコマンド送信処理において生成された制御コマンド（Ｐ）に基づいて、予め定められた変換方式の変更規則（以下、「変更プロトコル」という）に従い、現在まで設定されていた変換方式を新たな変換方式へ変更する。
【００８９】
本実施形態では、ビット列変換処理の際に用いる変換方式を、後述の決定手段５４０が決定するが、決定手段５４０が変換方式を決定し、決定した変換方式でビット列変換処理が行われるように後述の生成手段５２０に対する設定を行う処理を「変換方式設定処理」という。また、今回のコマンド送信処理において生成された制御コマンド（Ｐ）が変換方式を変更する制御コマンドであるための条件を「変更条件」といい、本実施形態では、変更条件についても複数の変更条件が予め用意されている。変更プロトコルおよび変更条件の詳細については、後述する。
【００９０】
また、本実施形態では、ビット列変換処理を施す際のビットローテート演算において用いられるシフト量を、後述の生成手段５２０が更新するが、生成手段５２０がシフト量を更新し、更新したシフト量でビットローテート演算が行われるように後述のビット列変換回路５２５を担うローテート演算器に対する設定を行う処理を「シフト量設定処理」という。なお、シフト量設定処理では、シフト量Ａを規則的に変動させるためにシフト量Ａを適宜更新し、シフト量Ｂをランダムに変動させるためにシフト量Ｂを適宜更新する。本実施形態では、シフト量Ａ、Ｂをどのようなタイミングで更新していくのかを規定するための条件（以下、「更新タイミング条件」という）として、シフト量Ａに係る更新タイミング条件は、複数の条件が予め用意されており、シフト量Ｂに係る更新タイミング条件は、１つの条件が予め用意されている。
【００９１】
このように、本実施形態では、今回のコマンド送信処理において生成された制御コマンド（Ｐ）に付加される誤り検査値は、当該制御コマンド（Ｐ）よりＮ個前に生成された制御コマンド（Ｐ−Ｎ）を用いて生成された誤り検査値（Ｐ−Ｎ）であって、変換方式Ａ又は変換方式Ｂのいずれかでビット列変換処理が施された誤り検査値（Ｐ−Ｎ）となる。このとき、制御コマンド（Ｐ）が変更条件を満たす制御コマンドであれば、現在まで設定されていた変換方式を新たな変換方式に変更した上で、誤り検査値（Ｐ−Ｎ）にビット列変換が施される。そして、制御コマンド（Ｐ）に対して、新たな変換方式でビット列変換処理が施された誤り検査値（Ｐ−Ｎ）が付加されることとなる。更に、本実施形態では、シフト量Ａおよびシフト量Ｂを適宜更新し、いずれかの変換方式でビット列変換処理を施す場合であっても、ビット列変換処理を施すタイミングによってビットローテート演算の結果が動的に変動することとなる。なお、シフト量Ａおよびシフト量Ｂの更新の詳細については、後述する。
【００９２】
図５は、本実施形態に係る主制御部１１０の認証処理に関する内部構成を示す機能ブロック図である。図６は、本実施形態に係る（ａ）メインＲＯＭ１１０ｂおよび（ｂ）ブートＲＯＭ１１０ｄのメモリマップを説明するための概略図である。図７は、本実施形態に係る制御コマンドへの誤り検査値の付加手順を説明するための概略図である。また、図６では、本発明の特徴的な領域以外は省略している。また、「ｘｘｘＦＨ」などのアドレス表記は、各領域の区分を示すために便宜上設けたものであるとともに、各領域同士の位置関係においても、図６に示した位置関係に限定されるものではない。
【００９３】
主制御部１１０は、上記のようにメインＣＰＵ１１０ａ、メインＲＯＭ１１０ｂ、およびブートＲＯＭ１１０ｄに加え、メインＣＰＵ１１０ａからの制御指示に基づき、誤り検査値の生成処理および付加処理を行う検査値生成部５００と、演出制御部１２０への制御コマンドの送信処理を行う送信部５５０とを少なくとも備えている。また、これら主制御部１１０の各構成部は、各々が出力する各種データや信号を送受できるようバス接続されている（図示せず）。
【００９４】
バスは、アドレスバス、データバス、および制御バスの機能を少なくとも備え、主制御部１１０の各構成部から出力された制御信号に基づきバス上を通るデータの割り当てを行い、データの衝突が生じないように制御している。なお、図５においては、便宜上、バスという形では明示せず、主制御部１１０の各構成部を結ぶ信号線として表し、その中でも特徴的なものだけを示している。また、主制御部１１０の各構成部には、クロックパルス発生回路（図示せず）により出力された所定のクロック信号がそれぞれ入力されている。
【００９５】
メインＣＰＵ１１０ａは、上記のように遊技進行に係る処理を実行する他、遊技機１での認証処理を実行する。メインＣＰＵ１１０ａは、メインＲＯＭ１１０ｂに記憶された認証処理用プログラムや各種固定データを用いて各種演算処理を実行する。また、メインＣＰＵ１１０ａは、ブートＲＯＭ１１０ｄに記憶されたブート処理用プログラムやメインＲＯＭ１１０ｂに記憶された各種初期値を用いて各種演算処理を実行する。そして、メインＣＰＵ１１０ａは、これらの演算処理の結果に応じて制御信号や制御コマンドを出力する。
【００９６】
例えば、メインＣＰＵ１１０ａは、演出制御部１２０へ送信するべき制御コマンドのコマンド送信処理を行う際には、検査値生成部５００へ当該制御コマンドを書き込むための制御信号（以下、「書き込み信号」という）を出力し、当該制御コマンドを、検査値生成部５００を介して送信部５５０にて送信させる。
【００９７】
また、メインＣＰＵ１１０ａは、ブート処理用プログラムに基づいて、ブート処理中の初期値設定処理を行う際には、メインＲＯＭ１１０ｂに記憶された各種初期値を読み出すための制御信号（以下、「読み出し信号」という）を出力して各種初期値を取得し、取得した各種初期値のそれぞれに対応した構成回路へ出力して各種初期値を設定する処理を行う。
【００９８】
また、メインＣＰＵ１１０ａは、主制御部１１０の初期化処理時に、後述する固有情報を検査値生成部５００へ設定する必要があるときは、メインＲＯＭ１１０ｂに記憶された固有情報を読み出すための読み出し信号を出力して固有情報を取得し、取得した固有情報を検査値生成部５００へ設定する処理を行う。
【００９９】
メインＲＯＭ１１０ｂには、上記のような遊技処理用プログラムやデータの他、メインＣＰＵ１１０ａが遊技機１にて認証処理を実行するための認証処理用プログラムが予め記憶されている（図６（ａ）の「ｘｘｙ０Ｈ」〜「ｘｘｚＦＨ」の領域）。また、メインＲＯＭ１１０ｂには、主制御部１１０が初期化された後に初めて出力する制御コマンドに付加する誤り検査値として使用する、遊技機１の固有情報が記憶されている（図６（ａ）の「ｘｙｚ０Ｈ」〜「ｘｚｘＦＨ」の領域）。また、メインＲＯＭ１１０ｂは、メインＣＰＵ１１０ａからの読み出し信号に応じて、認証処理用プログラムコードや固有情報などを出力する。
【０１００】
固有情報は、主制御部１１０が保持する遊技機１固有の情報であれば特に限定されない。固有情報は、図６（ａ）では、メインＲＯＭ１１０ｂの固定データが記憶された領域の中の特定のアドレス（図６（ａ）の「ｘｙｚ０Ｈ」〜「ｘｚｘＦＨ」の領域）のデータ（例えば、制御コマンドデータ）となっているが、例えば、メインＲＯＭ１１０ｂのプログラムコードが記憶された領域（図６（ａ）の「００００Ｈ」〜「ｘｘｚＦＨ」の領域）の中の特定のアドレスにおけるチェックサム値や、メインＣＰＵ１１０ａに固有に付与されている識別番号（ＩＤ）や、メーカーコード・機種コード等の製品情報などを用いることができる。また、固有情報は、予め演出制御部１２０との間で取り決められた誤り検査値のダミーデータなど用いることができる。これらのデータに四則演算や論理演算等を施した値でもよい。なお、固有情報は、メインＲＯＭ１１０ｂとは別個の記憶手段（メモリセルやＲＯＭなど）に記憶されていてもよい。
【０１０１】
主制御部１１０にて生成される誤り検査値は、上記所定の記憶領域である後述の格納回路５２２に格納しておいた過去の制御コマンドを用いて生成される。しかしながら、遊技機１のリセット時のように主制御部１１０が初期化されたときには、格納回路５２２に格納しておいた過去の制御コマンドがクリアされるため、これを用いて誤り検査値を生成することができない。そこで、本実施形態では、格納回路５２２に格納しておいた過去の制御コマンドがクリアされた場合に、格納回路５２２への初期設定値として、メインＲＯＭ１１０ｂに予め格納された固有情報を用いる。
【０１０２】
本実施形態では、格納回路５２２用の固有情報としてＮ個の固有情報を用意する。そして、主制御部１１０の初期化により格納回路５２２の制御コマンドがクリアされた場合には、メインＣＰＵ１１０ａが、メインＲＡＭ１１０ｃの生成個数記憶領域（Ｐ）の値を参照して、格納回路５２２へ固有情報を設定する必要があるか否かを判断する。そして、生成個数記憶領域（Ｐ）の値がＰ＝１の場合は、メインＣＰＵ１１０ａが、格納回路５２２に固有情報を初期設定値として設定するものとする。なお、本実施形態では、制御コマンドを用いずに固有情報を用いて生成された誤り検査値を、「初期検査値」ともいう。
【０１０３】
メインＲＯＭ１１０ｂには、上記のようにワンチップマイコン１１０ｍの内蔵回路や周辺回路等の初期値（いわゆるハードウェアパラメータ）の一つであって、検査値生成部５００に設定されるハードウェアパラメータ（以下、「ＨＷパラメータ」という）が予め記憶されている（図６（ａ）の「ｙｙｙ０Ｈ」〜「ｙｙｚＦＨ」の領域）。ＨＷパラメータは、検査値生成部５００が有する複数の誤り検査値を生成および付加する機能（誤り検査値付加機能）のうち、どの誤り検査値付加機能を採用するのかを選択するための選択情報である。誤り検査値付加機能およびその選択情報は、予め主制御部１１０と演出制御部１２０との間で取り決めておく。
【０１０４】
本実施形態では、検査値生成部５００には、複数の誤り検査値付加機能の具体的な実施態様として、上記のように、複数の変更条件およびシフト量Ａに係る複数の更新タイミング条件が予め用意されている。すなわち、どの変更条件を採用するかに応じて、変更条件を満たす制御コマンドの種類も変わる。そして、変更条件を満たす制御コマンドの種類が変わると、ある時点に送信される制御コマンドに付加される誤り検査値にとっては、ビット列変換処理が施される際に用いられる変換方式も変わる。結果的に、採用された変更条件に応じて、制御コマンドに付加される誤り検査値のビット列も変わるためである。更に、どの更新タイミング条件を採用するかに応じて、変換方式Ａでビット列変換処理を行う際のシフト量Ａが更新されるタイミングも変わり、ある時点に送信される制御コマンドに付加される誤り検査値にとっては、変換方式Ａのビットローテート演算で用いられるシフト量も変わる。結果的に、採用された更新タイミング条件に応じて、制御コマンドに付加される誤り検査値のビット列も変わるためである。本実施形態では、ブート処理中の初期値設定処理の際に、検査値生成部５００に対して予め用意された複数の変更条件のうちの特定の条件が設定されるとともに、シフト量Ａに係る複数の更新タイミング条件のうちの特定の条件が設定される。ＨＷパラメータは、この特定の変更条件および更新タイミング条件として、どの条件を採用するのかを選択する為の選択情報である。
【０１０５】
本実施形態では、複数の変更条件のそれぞれと対応付けられた複数のＨＷパラメータが予め用意されており、検査値生成部５００の後述する決定手段５４０に予め記憶されている。また、本実施形態では、シフト量Ａに係る複数の更新タイミング条件のそれぞれと対応付けられた複数のＨＷパラメータが予め用意されており、検査値生成部５００の後述する生成手段５２０に予め記憶されている。そして、ブート処理中の初期値設定処理の際、メインＣＰＵ１１０ａが検査値生成部５００へ特定のＨＷパラメータを設定すると、検査値生成部５００は、設定されたＨＷパラメータを確認し、当該ＨＷパラメータに対応した変更条件および更新タイミング条件をデフォルトの条件としてそれぞれ用いる。
【０１０６】
本実施形態では、メインＣＰＵ１１０ａが行う設定処理であって、ブート処理中の初期値設定処理でも、特に、検査値生成部５００へ特定のＨＷパラメータを設定する処理を「ＨＷパラメータ設定処理」という。また、本実施形態では、検査値生成部５００が行う設定処理であって、ＨＷパラメータ設定処理に伴ってデフォルトの変更条件を決定し、決定した変更条件を、検査値生成部５００を構成する後述の決定手段５４０に対して設定する処理を「変更条件設定処理」という。また、本実施形態では、検査値生成部５００が行う設定処理であって、ＨＷパラメータ設定処理に伴ってシフト量Ａに係るデフォルトの更新タイミング条件を決定し、決定した更新タイミング条件を、検査値生成部５００を構成する後述の生成手段５２０に対して設定する処理を「更新タイミング条件設定処理」という。
【０１０７】
また、上記初期値およびＨＷパラメータを記憶する領域は、図６ではメインＲＯＭ１１０ｂ内の領域であるが、本発明はこれに限定されず、メインＲＯＭ１１０ｂとは別個のメモリセルに記憶したり、ブートＲＯＭ１１０ｄ内に記憶したりするように構成することもできる。すなわち、本発明では、上記初期値およびＨＷパラメータの記憶領域と、遊技処理用プログラムや固定データ等の記憶領域とは、同一の記憶手段（メモリセルやＲＯＭなど）に搭載されていてもよいし、異なる記憶手段に搭載されていてもよい。
【０１０８】
ブートＲＯＭ１１０ｄには、ブート処理用プログラムやブート処理用プログラムの実行の際に使用される固定データが予め記憶されている（図６（ｂ）の「ｚｘｘ０Ｈ」〜「ｚｙｚＦＨ」の領域）。ブート処理用プログラムは、メインＣＰＵ１１０ａの起動直後にブートＲＯＭ１１０ｄからブート処理専用ＲＡＭ（図示せず）へ読み込まれ、メインＣＰＵ１１０ａにて実行が開始されるように予め設定されており、メインＣＰＵ１１０ａ自身の自己診断処理や、メインＣＰＵ１１０ａを搭載するワンチップマイコン１１０ｍの内蔵回路や検査値生成部５００を含む周辺回路等の初期化および初期値の設定処理（すなわち初期値設定処理）を制御するものである。なお、本実施形態では、ブート処理後に実行される遊技処理用プログラムなど、ブート処理用プログラム以外のプログラムを「ユーザープログラム」という。
【０１０９】
ブート処理用プログラムは、ＣＰＵメーカーが開発・実装するプログラムであり、これらが記憶されたブートＲＯＭ１１０ｄに対するアクセスは、遊技機１の出荷後、ブート処理時のメインＣＰＵ１１０ａからのアクセスにのみ制限されている。一方、ユーザープログラムは、遊技機メーカーが開発・実装するプログラムであり、これらが記憶されたメインＲＯＭ１１０ｂに対するアクセスは、遊技処理が実行されるたびにメインＣＰＵ１１０ａからアクセスされる。
【０１１０】
しかしながら、メインＲＯＭ１１０ｂの記憶領域でも、ワンチップマイコン１１０ｍの内蔵回路や検査値生成部５００を含む周辺回路等の初期値（ＨＷパラメータを含む）が記憶された領域など、ユーザープログラムや固定データ等（固有情報を含む）が記憶された領域以外の記憶領域（例えば、図６（ａ）の「ｙｘｘ０Ｈ」〜「ｙｙｚＦＨ」の領域）は、ブート処理用プログラムの中でのみ定義された領域であり、遊技処理に係るユーザープログラム上では全く現れることが無い領域とされている。つまり、ブート処理が終了した後は、上記領域（図６（ａ）の「ｙｘｘ０Ｈ」〜「ｙｙｚＦＨ」の領域）は、ユーザープログラムからはアクセスできないように実質的な制限がかけられた領域とされている。
【０１１１】
しかしながら、不正なアクセスを試みられた場合を考慮して、以下に示す更なる制限をかけることで、ブート処理時にのみ得られるＨＷパラメータの秘匿性をより向上させることができる。
【０１１２】
ブートＲＯＭ１１０ｄおよびメインＲＯＭ１１０ｂへのアクセス制限は、例えば、主制御部１１０に実行アドレス監視手段（図示せず）を設けておき、ブート処理終了後に実行アドレス監視手段を作動させ、ユーザープログラムが所定のアドレス（例えば、図６（ａ）の「００００Ｈ」〜「ｘｚｙＦＨ」の領域）を超えた領域へアクセスしようとした場合には、メインＣＰＵ１１０ａへリセット信号を出力してメインＣＰＵ１１０ａを動作停止状態にすればよい。また、リセット信号を出力しないまでも、異常を検知した旨を示す報知信号を出力するようにしてもよい。
【０１１３】
また、ＨＷパラメータのメインＲＯＭ１１０ｂへの実装においては複数の方法が考えられる。例えば、検査値生成部５００に予め用意された複数の変更条件およびシフト量Ａに係る複数の更新タイミング条件のそれぞれと対応する複数のＨＷパラメータを予め用意し、メインＲＯＭ１１０ｂに実装する。そして、ＨＷパラメータ設定処理の中で、どのＨＷパラメータを採用するかを選択するためのプログラムをブートＲＯＭ１１０ｄに実装しておき、ブート処理のたびにどの変更条件および更新タイミング条件を用いるのかを任意に選択できるように構成することができる。このように実装すると、ブート処理のたびに変更条件および更新タイミング条件が変更され、誤り検査値付加機能の秘匿性を向上させることができ、遊技機１のセキュリティ強度を向上させることができる。
【０１１４】
一方、検査値生成部５００に備えられた変更条件およびシフト量Ａに係る更新タイミング条件ならびにＨＷパラメータについては予め複数用意するものの、特定のＨＷパラメータのみをメインＲＯＭ１１０ｂに実装し、これに対応する特定の変更条件および更新タイミング条件のみが採用されるように構成することもできる。このように実装すると、ブート処理でのＨＷパラメータの選択処理に伴うプログラムを新たに設ける必要がなく、プログラムのコードサイズを増大させることがない。また、このように実装すると、遊技機メーカーが特定の変更条件および更新タイミング条件だけを採用したい場合であっても、遊技機メーカーが行うプログラム実装過程において、所望の変更条件および更新タイミング条件に対応したＨＷパラメータのみをメインＲＯＭ１１０ｂに実装すればよく、遊技機メーカーの用途や嗜好に柔軟に対応することができる。
【０１１５】
なお、この場合であっても、ＨＷパラメータは、主制御部１１０のブート処理時の初期値設定時以外ではアクセスされない記憶領域に記憶されているため、外部から変更条件および更新タイミング条件の内容を知ることができない。そのため、不正者が、遊技機１で採用された変更条件および更新タイミング条件を解析することは困難であり、遊技機１が有する誤り検査値付加機能の秘匿性は確保される。また、遊技機１の開発段階中で設計・検証作業などに使用するＨＷパラメータと、その後に実際に実装されるＨＷパラメータとを変えることによって、最終的にどのＨＷパラメータが実装されたのかを知り得る者が限定され、誤り検査値付加機能の秘匿性は更に向上する。本実施形態では、特定の変更条件および更新タイミング条件に対応する特定のＨＷパラメータのみがメインＲＯＭ１１０ｂに実装されていることとして説明する。
【０１１６】
検査値生成部５００は、メインＣＰＵ１１０ａと送信部５５０との間に設けられている。そして、メインＣＰＵ１１０ａと検査値生成部５００との接続、および検査値生成部５００と送信部５５０との接続は、上記のようにバス接続されており、それぞれの接続に使用されるバスは同一規格のバスとなっている。すなわち、検査値生成部５００のメインＣＰＵ１１０ａ側の入力インターフェースと、送信部５５０の検査値生成部５００側の入力インターフェースにおいて、各インターフェース間でのデータ送受を制御する方式（以下、「入出力制御形式」という）は、それぞれ、メインＣＰＵ１１０ａの検査値生成部５００側の出力インターフェースに設定された入出力制御方式に対応した方式となっている。なお、バス規格は、公知の規格を用いればよい。
【０１１７】
本実施形態では、メインＣＰＵ１１０ａの検査値生成部５００側の出力インターフェースの入出力制御方式を、「ＣＰＵインターフェース方式」という。そして、このＣＰＵインターフェース方式は、上記のバス規格に基づいて定められた公知の入出力制御方式を用いればよく、検査値生成部５００を追加する前のメインＣＰＵ１１０ａと送信部５５０の間のバス規格に基づいて定められた入出力制御方式でよい。検査値生成部５００の送信部５５０側の出力インターフェースも、ＣＰＵインターフェース方式で構成されている。
【０１１８】
本実施形態のＣＰＵインターフェース方式を具体的に説明する。例えば、メインＣＰＵ１１０ａが制御コマンドを検査値生成部５００へ出力する際、メインＣＰＵ１１０ａは、データバスに制御コマンド、アドレスバスに検査値生成部５００の所定の記憶領域を指定するアドレスデータ、制御バスに書き込み信号を出力する。このアドレスデータは、デコーダを介してチップセレクト信号へ変換され、検査値生成部５００へ入力される。検査値生成部５００は、チップセレクト信号および書き込み信号がアクティブとなると（本実施形態では制御信号がアクティブとなることを「制御信号が入力される」ともいう）、データバス上の制御コマンドを取り込む。このような入出力制御方式で、制御コマンドがメインＣＰＵ１１０ａから検査値生成部５００へ出力される。メインＣＰＵ１１０ａがＨＷパラメータを検査値生成部５００へ出力する際も同様である。
【０１１９】
また、検査値生成部５００が制御コマンドを送信部５５０へ出力する際も、検査値生成部５００は、データバスに制御コマンド、アドレスバスに送信部５５０の所定の記憶領域を指定するアドレスデータ、制御バスに書き込み信号を出力する。そして、送信部５５０は、当該アドレスデータのチップセレクト信号および書き込み信号が入力されると、データバス上の制御コマンドを取り込み、制御コマンドが検査値生成部５００から送信部５５０へ転送される。検査値生成部５００が誤り検査値を送信部５５０へ出力する際も同様である。
【０１２０】
なお、本実施形態では、出力されたアドレスデータは、チップセレクト信号へ変換された後、指定された主制御部１１０内の構成部へ入力されるものとし、アドレスデータからチップセレクト信号への変換については説明を省略する。
【０１２１】
また、本実施形態では、バスは、制御コマンドまたは誤り検査値のいずれか小さい方のデータ長以上のビット幅を有するバスを設けておけばよい。例えば、制御コマンドは２バイト、誤り検査値は１バイトのデータであるとすると、データバスのビット幅は、少なくとも１バイト以上とすればよい。この場合、メインＣＰＵ１１０ａおよび検査値生成部５００は、まず、２バイト長の制御コマンドの上位１バイトをデータバスへ出力し、続いて、下位１バイトをデータバスへ出力する。続いて、検査値生成部５００は、１バイトの誤り検査値をデータバスへ出力する。
【０１２２】
検査値生成部５００は、メインＣＰＵ１１０ａから出力された制御コマンドに対して誤り検査値を付加して送信部５５０へ出力する機能を果たし、変更条件設定処理、更新タイミング条件設定処理、変換方式設定処理、シフト量設定処理、検査値生成処理、ビット列変換処理、および検査値付加処理など、遊技機１のセキュリティ機能実現に係る主制御部１１０の処理全般を実行する回路である。具体的には、検査値生成部５００は、バッファ手段５１０と、決定手段５４０と、生成手段５２０と、付加手段５３０とを少なくとも備えている。そして、検査値生成部５００の各手段は、ワイヤードロジック制御方式で回路構成されている。
【０１２３】
本実施形態では、検査値生成部５００内の各手段同士および各手段内の各回路同士でのデータ送受は、主制御部１１０のクロックパルス発生回路から出力されたクロック信号に同期して行われる。そのため、本実施形態では、検査値生成部５００内の各手段や各回路の入出力制御方式を、「同期インターフェース方式」という。同期インターフェース方式では、出力するデータの接続先に対してイネーブル信号等を出力すれば、接続先は当該イネーブル信号およびクロック信号等の入力に基づいて、当該出力データを取り込む。よって、同期インターフェース方式は、バスを介して送出されるアドレスデータ（チップセレクト信号）および書き込み信号を必要とするＣＰＵインターフェース方式とは異なる。
【０１２４】
バッファ手段５１０は、ブート処理後のコマンド送信処理において、メインＣＰＵ１１０ａから出力された制御コマンドや固有情報を入力し、一時的に保持する回路である。そして、バッファ手段５１０は、保持した制御コマンドを後続する決定手段５４０、生成手段５２０、および付加手段５３０へ出力する回路である。固有情報が入力された場合は、生成手段５２０へのみ出力する。すなわち、バッファ手段５１０は、メインＣＰＵ１１０ａが演出制御部１２０へ送信する制御コマンドを一時的に保持し、メインＣＰＵ１１０ａのコマンド送信処理の実行タイミングと、後続する決定手段５４０の変換方式設定処理、生成手段５２０の検査値生成処理、ビット列変換処理、およびシフト量設定処理、ならびに付加手段５３０の検査値付加処理の各実行タイミングとを調整する役割を担っている。
【０１２５】
バッファ手段５１０の入力側は、メインＣＰＵ１１０ａとの間で、上記のようにＣＰＵインターフェース方式に対応する入出力制御方式でデータ送受が制御されている。一方、バッファ手段５１０の出力側は、後続する決定手段５４０、生成手段５２０、および付加手段５３０との間で、同期インターフェース方式でデータ送受が制御されている。すなわち、バッファ手段５１０は、自身の入力側と出力側とで異なる入出力制御方式を有し、メインＣＰＵ１１０ａのＣＰＵインターフェース方式と検査値生成部５００内の同期インターフェース方式とを整合する役割を担っている。
【０１２６】
そして、バッファ手段５１０は、データバッファ５１１と制御回路５１２とを少なくとも備えている。データバッファ５１１は、メインＣＰＵ１１０ａから出力された制御コマンドや固有情報を、データバスを介して取り込んで保持する回路である。制御回路５１２は、メインＣＰＵ１１０ａから出力された制御信号の入力に基づいて、データバッファ５１１の動作を制御する回路である。
【０１２７】
具体的には、制御回路５１２は、メインＣＰＵ１１０ａから出力された制御コマンドや固有情報をバッファ手段５１０のデータバッファ５１１へ書き込むための書き込み信号と、バッファ手段５１０を指定するアドレスデータとが入力されると、データバス上の制御コマンドや固有情報をデータバッファ５１１が取り込むよう作動させるためのイネーブル信号（以下、「作動許可信号」という）を出力する。データバッファ５１１は、当該作動許可信号の入力に基づいて、データバス上の制御コマンドや固有情報を取り込む。
【０１２８】
また、制御回路５１２は、データバッファ５１１が取り込んだ制御コマンドや固有情報を決定手段５４０や生成手段５２０や付加手段５３０へ出力するよう作動させるための作動許可信号を出力する。データバッファ５１１は、当該作動許可信号の入力に基づいて、取り込んだ制御コマンドを決定手段５４０、生成手段５２０、および付加手段５３０へ出力すると共に、取り込んだ固有情報を生成手段５２０へ出力する。
【０１２９】
そして、制御回路５１２は、データバッファ５１１から出力された制御コマンドが、決定手段５４０、生成手段５２０、および付加手段５３０で入力可能となるよう、決定手段５４０の判定回路５４１、生成手段５２０の制御回路５２３、および付加手段５３０の制御回路５３２に対して、作動許可信号を出力する。なお、制御回路５１２が、上記各作動許可信号を出力するタイミングは、検査値生成部５００内の各手段の動作時間等を考慮しながら、各手段がメインＣＰＵ１１０ａからの制御信号およびクロック信号の入力に同期して正常に動作できるようなタイミングとなるように予め設定されている。
【０１３０】
また、制御回路５１２は、データバッファ５１１から出力された固有情報が、生成手段５２０で入力可能となるように、生成手段５２０の制御回路５２３に対して作動許可信号を出力する。なお、図５では、データバッファ５１１から生成手段５２０へ延びるデータ線には、制御コマンドのみが記載されているが、固有情報においても、当該データ線を経由してデータバッファ５１１から生成手段５２０へ出力される。
【０１３１】
決定手段５４０は、デフォルトの変更条件を決定し、決定した変更条件に基づいて変換方式の変更が行われるように設定する回路である。また、決定手段５４０は、バッファ手段５１０から出力された制御コマンドに付加する誤り検査値にビット列変換処理を施す際の変換方式を決定し、決定した変換方式を用いて変換されたビット列の誤り検査値が出力されるように、生成手段５２０への設定を行う回路である。すなわち、決定手段５４０は、検査値生成部５００の変更条件設定処理および変換方式設定処理を実行する役割を担っている。
【０１３２】
具体的には、決定手段５４０は、ブート処理中には、変更条件設定処理として、メインＣＰＵ１１０ａから設定されたＨＷパラメータに基づいて、デフォルトの変更条件を決定し、決定した変更条件に応じた設定を行う。また、決定手段５４０は、ブート処理中には、変換方式設定処理として、予め定められたデフォルトの変換方式に応じた生成手段５２０への設定を行う。また、決定手段５４０は、ブート処理後のコマンド送信処理の際には、変換方式設定処理として、バッファ手段５１０から出力された制御コマンドを入力し、入力した制御コマンドに基づいて変換方式を決定し、決定した変換方式に応じた生成手段５２０への設定を行う。
【０１３３】
決定手段５４０は、判定回路５４１と決定回路５４２とを少なくとも備えている。判定回路５４１は、バッファ手段５１０から出力された制御コマンドを入力し、入力した制御コマンドが、変更条件を満たす制御コマンドであるか否かの判定処理を実行し、判定結果を決定回路５４２へ通知する回路である。具体的には、判定回路５４１には、変更条件を予め記憶させておく変更条件記憶器５４１ａと、入力した制御コマンドと変更条件とを比較する比較器５４１ｂとが備えられている。
【０１３４】
変更条件記憶器５４１ａは、レジスタなどで構成され、変更条件記憶器５４１ａの入力側は、決定回路５４２とデータ線で接続されている。また、変更条件記憶器５４１ａの出力側は、比較器５４１ｂとデータ線で接続されている。そして、変更条件記憶器５４１ａは、ＨＷパラメータ設定処理にて設定されたＨＷパラメータに対応するデフォルトの変更条件が決定回路５４２から出力されると、当該変更条件を取り込んで記憶するとともに、変更条件のビットパターンを比較器５４１ｂへ出力する。
【０１３５】
比較器５４１ｂは、変更条件記憶器５４１ａと同等以上のビット数を比較可能なイコールコンパレータやマグニチュードコンパレータなどで構成され、比較器５４１ｂの入力側は、変更条件記憶器５４１ａおよびバッファ手段５１０のデータバッファ５１１とデータ線でそれぞれ接続されている。また、比較器５４１ｂの出力側は、決定回路５４２と制御線で接続されている。
【０１３６】
そして、比較器５４１ｂは、制御回路５１２から出力された作動許可信号の入力に基づいて、コマンド送信処理の際にデータバッファ５１１から出力された制御コマンドを入力する。続いて、比較器５４１ｂは、当該制御コマンドのビットパターンと、変更条件記憶器５４１ａから出力された変更条件のビットパターンとを比較する。続いて、比較器５４１ｂは、入力した制御コマンドが変更条件を満たす制御コマンドであるか否かの判定結果を通知するための制御信号（以下、「判定結果信号」という）を出力する。
【０１３７】
比較器５４１ｂは、入力した制御コマンドと変更条件とを比較して両者が一致すれば、バッファ手段５１０から出力された制御コマンドが変更条件を満たす制御コマンドであることを示す判定結果信号を決定回路５４２へ出力する。一方、比較器５４１ｂは、両者が一致しなければ、バッファ手段５１０から出力された制御コマンドが変更条件を満たす制御コマンドでないことを示す判定結果信号を決定回路５４２へ出力する。
【０１３８】
変更条件は、予め演出制御部１２０との間で取り決めておけば基本的に任意である。例えば、本実施形態では、バッファ手段５１０から出力された制御コマンドの入力回数（すなわち制御コマンドの生成個数Ｐ）が所定数であるか否か等の、種々の条件を設定することができる。本実施形態では、バッファ手段５１０から出力された制御コマンドの種別が、予め定めた所定の制御コマンドに該当するか否かを変更条件として設定する。本実施形態での変更条件を以下に説明する。
【０１３９】
遊技機１には遊技の進行にあたって発現する様々な遊技状態が設定されており、主制御部１１０では、当該遊技状態に応じて様々な動作モードで制御処理が行われる。そして、所定の動作モードの期間の際には、当該動作モードに応じた所定の制御コマンド群が生成され、演出制御部１２０へ送信される。このとき、所定の制御コマンド群には、当該動作モード期間の開始および終了を示す制御コマンド等の、主制御部１１０および演出制御部１２０で当該動作モードの移行が確認できる制御コマンドが含まれている。
【０１４０】
例えば、図９を用いて後述するように、大当たり状態の動作モードの際には、各種大当たり状態の開始時を示すオープニング指定コマンド（図９では「ＭＯＤＥ」の情報が「ＥＢＨ」である制御コマンド）および各種大当たり状態の終了時を示すエンディング指定コマンド（図９では「ＭＯＤＥ」の情報が「ＥＣＨ」である制御コマンド）がそれぞれ生成され、演出制御部１２０へそれぞれ送信される。また、例えば、時短遊技状態の動作モードの際には、非時短遊技状態から時短遊技状態への移行に伴って、時短作動用遊技状態指定コマンド（図９では「ＭＯＤＥ」の情報が「ＥＥＨ」であり「ＤＡＴＡ」の情報が「０１Ｈ」である制御コマンド）が生成され、演出制御部１２０へ送信される。そして、時短遊技状態から非時短遊技状態への移行に伴って、時短未作動用遊技状態指定コマンド（図９では「ＭＯＤＥ」の情報が「ＥＥＨ」であり「ＤＡＴＡ」の情報が「００Ｈ」である制御コマンド）が生成され、演出制御部１２０へ送信される。
【０１４１】
本実施形態では、所定の動作モードの期間の際、すなわち、所定の制御コマンド群が送信される期間の際には、ビット列変換処理で用いる誤り検査値の変換方式を変換方式Ｂとし、それ以外では当該変換方式を変換方式Ａとする。そこで、本実施形態では、デフォルトの変換方式を変換方式Ａに決定しておき、所定の制御コマンド群のうち最初に生成される制御コマンドに関するコマンド送信処理の際に、変換方式を変換方式Ｂに変更すると決定する。そして、所定の制御コマンド群の生成が終了した後に最初に生成される制御コマンドに関するコマンド送信処理の際に、変換方式を変換方式Ａに戻すと決定する。すなわち、本実施形態では、バッファ手段５１０から出力された制御コマンド（Ｐ）の種別が、所定の制御コマンド群のうち最初に生成される制御コマンド、及び、所定の制御コマンド群の生成が終了した後に最初に生成される制御コマンド、のどちらかに該当するか否かを変更条件とする。このように取り決めておくと、本実施形態のビット列変換処理では、デフォルトの変換方式として変換方式Ａが用いられ、所定の動作モードの期間が開始すると変換方式Ｂが用いられ、所定の動作モードの期間が終了すると変換方式Ａが用いられることとなる。
【０１４２】
なお、本実施形態では、所定の制御コマンド群の種別として、所定の動作モードの期間の際に、制御コマンド群を構成する各制御コマンドがどのように出現するのかを予測可能な制御コマンド群を用いる。各制御コマンドの出現が予測可能な制御コマンド群を用いることで、演出制御部１２０側では、受信した誤り検査値（Ｐ−Ｎ）に対してビット列変換処理を行う際の試行回数を抑制することができる。
【０１４３】
また、所定の制御コマンド群の種別としては、例えば、出現頻度が高い制御コマンド群を採用することができる。この場合、変換方式Ｂを採用する期間が高い頻度で到来することとなるため、ランダムなシフト量でビット列変換処理が施された誤り検査値が頻繁に送信される。このため、制御コマンドと誤り検査値の対応関係が解析困難となり、セキュリティ強度を向上させることができる。また、所定の制御コマンド群の種別としては、例えば、出現頻度の低い制御コマンド群を採用することができる。この場合、変換方式Ｂを採用する期間が低い頻度でしか到来しなくなるため、変換方式Ｂが採用された制御コマンドおよび誤り検査値を窃取できる機会自体が少なくなる。このため、不正者が制御コマンドと誤り検査値の対応関係を解析するのに十分なサンプル数の制御コマンドおよび誤り検査値を窃取することが困難となるため、制御コマンドと誤り検査値の対応関係が解析困難となり、セキュリティ強度を向上させることができる。
【０１４４】
なお、所定の制御コマンド群の種別としては、一つの制御コマンド群の種別でも複数の制御コマンド群の種別でもよい。複数の制御コマンド群の種別を採用することは変換方式Ｂを採用する期間が増加することを意味するため、制御コマンドと誤り検査値の対応関係が更に解析困難となり、セキュリティ強度を向上させることができる。
【０１４５】
一方、決定回路５４２は、メインＣＰＵ１１０ａから設定されたＨＷパラメータに応じてデフォルトの変更条件を決定し、決定した変更条件によって判定回路５４１が上記判定処理を実行するように、判定回路５４１への設定を行う回路である。また、決定回路５４２は、判定回路５４１の判定結果信号に応じて変換方式を決定し、決定した変換方式によって生成手段５２０がビット列変換処理を実行するように、生成手段５２０への設定を行う回路である。
【０１４６】
決定回路５４２の入力側は、バスを介してメインＣＰＵ１１０ａと接続され、メインＣＰＵ１１０ａとの間では、ＣＰＵインターフェース方式に対応する入出力制御方式でデータ送受が制御されている。そして、決定回路５４２は、ＨＷパラメータ設定処理の際に、メインＣＰＵ１１０ａから出力されたＨＷパラメータをデータバス上から取り込む。また、決定回路５４２の入力側は、判定回路５４１と制御線で接続され、判定回路５４１との間では、同期インターフェース方式に対応する入出力制御方式でデータ送受が制御されている。そして、決定回路５４２は、判定回路５４１から出力された判定結果信号を入力する。
【０１４７】
また、決定回路５４２の出力側は、判定回路５４１の変更条件記憶器５４１ａとデータ線で接続されているとともに、生成手段５２０の制御回路５２３と制御線で接続され、生成手段５２０との間でも、同期インターフェース方式でデータ送受が制御されている。そして、決定回路５４２は、メインＣＰＵ１１０ａから設定されたＨＷパラメータに応じて、予め用意された複数の変更条件のいずれかを判定回路５４１へ出力する。また、決定回路５４２は、判定回路５４１から出力された判定結果信号に応じて変換方式を決定し、決定した変換方式を生成手段５２０へ設定するための制御信号を出力する。
【０１４８】
具体的には、決定回路５４２には、予め用意された複数の変更条件と複数のＨＷパラメータとの対応関係が分かるデータテーブルが設けられている。そして、決定回路５４２は、取り込んだＨＷパラメータによって特定の変更条件を一義的に決定することができる。そして、決定回路５４２は、ＨＷパラメータ設定処理において、メインＣＰＵ１１０ａから設定されたＨＷパラメータに対応する変更条件を、デフォルトの変更条件として変更条件記憶領域（Ｄ）に記憶しておく。そして、決定回路５４２は、変更条件記憶領域（Ｄ）に記憶された変更条件を判定回路５４１の変更条件記憶器５４１ａに出力する。
【０１４９】
また、決定回路５４２は、判定回路５４１から出力された判定結果信号に応じて決定した変換方式を示す情報である変換方式情報を生成する。変換方式情報は、予め用意された上記２つの変換方式である変換方式Ａおよび変換方式Ｂをそれぞれ識別できるような識別番号等の値とすればよい。そして、決定回路５４２には、変換方式情報を記憶する変換方式情報記憶領域（Ｓ）が設けられており、判定結果信号に応じて決定した変換方式を示す変換方式情報を、変換方式情報記憶領域（Ｓ）に記憶する。
【０１５０】
なお、本実施形態では、変換方式の具体的な態様は、生成手段５２０の後述するビット列変換回路５２５に設けられた複数のローテート演算器（図５では、ローテート演算器Ａ、Ｂ）で表されている。具体的には、変換方式Ａは、ローテート演算器Ａと対応しており、変換方式Ｂは、ローテート演算器Ｂと対応している。そして、決定回路５４２には、変換方式情報と当該複数のローテート演算器との対応関係が分かるデータテーブルが設けられている。
【０１５１】
決定回路５４２は、ブート処理中の変換方式設定処理の際に、デフォルトの変換方式Ａを示す変換方式情報を変換方式情報記憶領域（Ｓ）に記憶する。そして、決定回路５４２は、変換方式情報記憶領域（Ｓ）に記憶された値に基づいて、デフォルトの変換方式Ａに対応するローテート演算器Ａにてビット列変換処理が施された誤り検査値を、ビット列変換回路５２５から付加手段５３０へ出力させるための制御信号（以下、「変換方式制御信号」という）を、生成手段５２０の制御回路５２３へ出力する。
【０１５２】
なお、変換方式情報記憶領域（Ｓ）には、変換方式が変更された場合には、変更後の変換方式を示す変換方式情報のＳの値（以下、変更後の変換方式情報の値を「Ｓ’」とする）が記憶されることになる。決定回路５４２は、今回のコマンド送信処理にて変換方式を変更した場合、変更後の変換方式を示す変換方式情報を記憶した変換方式情報記憶領域（Ｓ）の値を確認することで、以降のコマンド送信処理で生成手段５２０が付加手段５３０へ出力するべき誤り検査値にビット列変換処理を施す際の変換方式を把握することができる。
【０１５３】
また、決定回路５４２には、メインＲＡＭ１１０ｃと同様に、現在までの制御コマンドの生成個数の値を記憶しておく生成個数記憶領域（Ｐ）が設けられている。そして、決定回路５４２は、判定回路５４１から判定結果信号が出力されたことを検知したときに生成個数記憶領域（Ｐ）の値に１を加算して更新する。これによって、決定回路５４２は、当該判定結果信号の出力に対応するバッファ手段５１０から出力された制御コマンドが、主制御部１１０が初期化されて格納回路５２２に格納しておいた制御コマンドがクリアされてからＰ番目に生成された制御コマンド（Ｐ）であることを把握することができる。
【０１５４】
なお、メインＲＡＭ１１０ｃに設けられた生成個数記憶領域（Ｐ）の値と決定回路５４２に設けられた生成個数記憶領域（Ｐ）の値とは同一の値となり、バッファ手段５１０から出力された制御コマンド（Ｐ）は、メインＣＰＵ１１０ａから現に出力された制御コマンド（Ｐ）と同一である。
【０１５５】
本実施形態では、上記のように、メインＣＰＵ１１０ａが、生成手段５２０の格納回路５２２へ固有情報を設定する必要があるか否かを判断するが、決定回路５４２が判断してもよい。例えば、決定回路５４２は、ＨＷパラメータを設定されたことに伴い、バッファ手段５１０へその旨を通知する。そして、バッファ手段５１０は、メインＣＰＵ１１０ａに対して固有情報を出力するように要求するための制御信号を出力して、メインＲＯＭ１１０ｂに格納された固有情報を出力させることとしてもよい。
【０１５６】
また、決定回路５４２は、ブート処理後の変換方式設定処理の際に、予め演出制御部１２０との間で取り決められた変換方式の変更プロトコルに従って、変換方式を変更する。具体的には、決定回路５４２は、判定回路５４１から出力された判定結果信号を確認し、バッファ手段５１０から出力された制御コマンドが変更条件を満たす制御コマンドであるか否かを把握する。そして、決定回路５４２は、バッファ手段５１０から出力された制御コマンドが変更条件を満たす制御コマンドであれば、予め定めた変更タイミングで、所定の変更方式に従って変換方式情報記憶領域（Ｓ）の値を変更する。すなわち、上記変更プロトコルとは、変換方式を変更するべきか否かを判定するための上記変更条件と、変換方式の変更タイミングの設定方法と、変換方式の変更方式とから少なくとも構成される。
【０１５７】
変更条件は、上記のように、本実施形態では、バッファ手段５１０から出力された制御コマンドが、所定の制御コマンド群のうち最初に生成される制御コマンド、及び、所定の制御コマンド群の生成が終了した後に最初に生成される制御コマンドのどちらかに該当するか否かである。
【０１５８】
変換方式の変更方式は、予め演出制御部１２０との間で取り決めておけば基本的に任意である。本実施形態では、変換方式Ａと変換方式Ｂとの２つが用意されているとし、デフォルトの変換方式を変換方式Ａとした。このとき、例えば、変更条件を満たす制御コマンドが出力される毎に、変換方式を、変換方式Ａ→変換方式Ｂ、変換方式Ｂ→変換方式Ａへ決定する方式が考えられる。また、例えば、変更条件を満たす制御コマンドが出力される毎に、予め用意した乱数生成回路を作動させ、得られた乱数値に対応する変換方式に決定する方式が考えられる。但し、乱数生成回路を用いる場合は、得られた乱数値を演出制御部１２０へ通知するか、当該乱数生成回路と同期して作動する乱数生成回路を演出制御部１２０にも用意する必要がある。本実施形態で取り決められた変更方式として、変更条件を満たす制御コマンドが出力される毎に、変換方式を変換方式Ａ→変換方式Ｂ等と決定する方式が採用されている。
【０１５９】
また、変換方式の変更タイミングの設定方法は、予め演出制御部１２０との間で取り決めてあれば基本的に任意であるが、本実施形態では、次のように変更タイミングを設定するものとする。すなわち、決定回路５４２は、バッファ手段５１０から出力された制御コマンド（Ｐ）が変更条件を満たす制御コマンドである場合は、生成個数がＭo個（Ｍo；非負の整数）経過した時点（すなわち、生成個数がＰ＋Ｍoの時）に、上記変更方式に従って変換方式情報記憶領域（Ｓ）の値をＳ’へ更新する。その結果、当該時点に出力された制御コマンド（Ｐ＋Ｍo）に対して付加する誤り検査値にビット列変換処理を施す際の変換方式には、変換方式情報記憶領域（Ｓ）に記憶された変更後の変換方式を示すＳ’の値が反映される。そして、このＳ’の値に対応した変換方式を用いてビット列が変換された誤り検査値（Ｐ＋Ｍo−Ｎ）が、制御コマンド（Ｐ＋Ｍo）に付加される。本実施形態では、Ｍoは、予め演出制御部１２０との間で取り決めてある固定値である。
【０１６０】
なお、決定回路５４２には、変換方式情報の変更タイミング時の生成個数の値を示す変更タイミング情報Ｍiを記憶する変更タイミング情報記憶領域（Ｍi）を設けておく。決定回路５４２は、バッファ手段５１０から出力された制御コマンド（Ｐ）が変更条件を満たす制御コマンドである場合に、当該制御コマンド（Ｐ）の生成個数に、予め取り決められたＭoの値を加えた値（Ｐ＋Ｍo）を、変更タイミング情報Ｍi（＝Ｐ＋Ｍo）として、変更タイミング情報記憶領域（Ｍi）に記憶する。すなわち、変更タイミング情報記憶領域（Ｍi）に記憶された値は、変更条件を満たす制御コマンドが出力されてからＭo個後に出力された制御コマンドの生成個数のＰの値と等しくなる。
【０１６１】
よって、決定回路５４２は、現在の制御コマンドの生成個数、すなわち、生成個数記憶領域（Ｐ）の値と、変更タイミング情報記憶領域（Ｍi）の値とを比較することで、現在は変更タイミングであるか否かを把握することができる。決定回路５４２には、生成個数記憶領域（Ｐ）の値と変更タイミング情報記憶領域（Ｍi）の値とを比較するための比較回路（図示せず）を設けておく。なお、決定回路５４２は、生成個数記憶領域（Ｐ）の値と変更タイミング情報記憶領域（Ｍi）の値とが一致して変更タイミングが到来し、変換方式を変更した後（変換方式情報記憶領域（Ｓ）の値を変更した後）は、変更タイミング情報記憶領域（Ｍi）をクリアする。
【０１６２】
本実施形態では、バッファ手段５１０から出力された制御コマンドが変更条件を満たす制御コマンドであると判明した時点から、実際に変換方式を変更する時点までの間に、更に変更条件を満たす制御コマンドが出力される可能性がある。そこで、本実施形態では、複数の変更タイミング情報記憶領域（Ｍi）を設けておく。ｉは、複数の変更タイミング情報記憶領域（Ｍi）のそれぞれに対する識別番号である。
【０１６３】
決定回路５４２は、変更条件を満たす制御コマンドが出力される毎に、それぞれの変更タイミング情報Ｍiを変更タイミング情報記憶領域（Ｍi）へ記憶しておく。変更タイミング情報記憶領域（Ｍi）は、変換方式を変更した後（変換方式情報記憶領域（Ｓ）の値を変更した後）はクリアされる。よって、変更タイミング情報Ｍiは、変換方式の変更タイミングが到来した時点から、更に変更条件を満たす誤り検査値が出力された個数分だけ記憶されることとなり、決定回路５４２は、最大でもＭo＋１個分の変更タイミング情報記憶領域（Ｍi）を確保しておけば足りる。このように取り決めておくと、iの値の取り得る範囲は、１≦i≦Ｍo＋１となる。なお、本実施形態では、複数の変更タイミング情報Ｍiの値の中で、最も小さい変更タイミング情報Ｍiの値を「Ｍmin」という。
【０１６４】
このようにして、決定回路５４２は、判定回路５４１の判定結果に応じて、ビット列変換処理で用いられる変換方式を決定する。そして、決定回路５４２は、上記変換方式制御信号を生成手段５２０の制御回路５２３へ出力することで、決定した変換方式に応じて生成手段５２０の設定を行うことができ、決定した変換方式を用いてビット列が変換された誤り検査値が付加手段５３０へ出力されることとなる。
【０１６５】
生成手段５２０は、バッファ手段５１０から出力された制御コマンドを用いて誤り検査値を生成し、生成した誤り検査値のビット列を変換して、後続する付加手段５３０へ出力する回路である。また、生成手段５２０は、ビット列変換処理を施す際のビットローテート演算において用いるシフト量を制御する回路である。すなわち、生成手段５２０は、検査値生成処理、ビット列変換処理、更新タイミング条件設定処理、およびシフト量設定処理を実行する役割を担っている。これらの処理の実行するために、生成手段５２０は、生成回路５２１と、格納回路５２２と、制御回路５２３と、入力選択回路５２４と、ビット列変換回路５２５とを少なくとも備えている。
【０１６６】
生成回路５２１は、バッファ手段５１０から過去に出力された制御コマンドに演算処理を施して誤り検査値を生成する回路である。格納回路５２２は、バッファ手段５１０から出力された制御コマンドを格納する回路である。制御回路５２３は、バッファ手段５１０から出力された作動許可信号の入力に基づいて、生成回路５２１および格納回路５２２の動作を制御する回路である。また、制御回路５２３は、決定手段５４０から出力された変換方式制御信号の入力に基づいて、生成回路５２１からビット列変換回路５２５を介して付加手段５３０へ出力する誤り検査値を制御する回路である。入力選択回路５２４は、ビット列変換回路５２５と付加手段５３０との接続を選択的に切り替える回路である。ビット列変換回路５２５は、生成回路５２１から出力された誤り検査値のビット列を変換する回路である。以下、これら生成手段５２０に備えられた各回路の詳細について説明する。
【０１６７】
格納回路５２２は、バッファ手段５１０から出力された制御コマンドを格納しておく回路である。格納回路５２２は、少なくとも遡及数のＮの値に対応するＮ段の格納回路で構成されている。そして、格納回路５２２を担う各格納回路は、パイプライン構成となるように各々が接続されており、遡及数のＮの値に対応するＮ段のシフトレジスタ（ＦＩＦＯメモリ）の機能を少なくとも有している。
【０１６８】
そして、格納回路５２２は、バッファ手段５１０がメインＣＰＵ１１０ａから受け取って、決定手段５４０、生成手段５２０、および付加手段５３０に出力した制御コマンド（Ｐ）よりも過去にメインＣＰＵ１１０ａによって生成された制御コマンドを格納することができる。具体的には、格納回路５２２は、バッファ手段５１０から出力された制御コマンド（Ｐ）より過去に生成された制御コマンド（Ｐ−１）〜制御コマンド（Ｐ−Ｎ）のＮ個の制御コマンドを格納することができる。本実施形態では、格納回路５２２を担う各格納回路のうち、初段の格納回路を格納回路（Ｐ−１）とし、最終段の格納回路を格納回路（Ｐ−Ｎ）とする。そして、格納回路５２２を担う各格納回路を、それぞれ格納回路（Ｐ−１）〜格納回路（Ｐ−Ｎ）とする。
【０１６９】
格納回路５２２の初段の格納回路（Ｐ−１）の入力側は、バッファ手段５１０のデータバッファ５１１とデータ線で接続されている。また、各格納回路（Ｐ−１）〜（Ｐ−Ｎ）は、制御回路５２３とそれぞれ制御線で接続されている。そして、制御回路５２３は、バッファ手段５１０の制御回路５１２から出力された作動許可信号の入力に基づいて、各格納回路（Ｐ−１）〜（Ｐ−Ｎ）に格納されたデータを順次シフトさせるための制御信号（以下、「シフト処理信号」という）を出力する。格納回路５２２の最終段の格納回路（Ｐ−Ｎ）の出力側は、生成回路５２１とデータ線で接続されている。
【０１７０】
各格納回路（Ｐ−１）〜（Ｐ−Ｎ）は、シフト処理信号が制御回路５２３から入力されると、各々が格納する制御コマンドを次段の格納回路へ順次シフトさせると共に、前段の格納回路からシフトされた制御コマンドを格納する。このとき、初段の格納回路（Ｐ−１）は、シフト処理信号の入力に伴ってバッファ手段５１０のデータバッファ５１１から出力された制御コマンド（Ｐ）を新たに取り込んで格納する。また、最終段の格納回路（Ｐ−Ｎ）は、自身が格納する制御コマンド（Ｐ−Ｎ）をシフト処理信号の入力に伴ってシフトさせ、後続する生成回路５２１へ出力する。
【０１７１】
また、生成回路５２１は、格納回路５２２から出力された制御コマンドに対し、予め設定された誤り検査値生成のための演算方式（以下、「生成方式」という）で演算して誤り検査値を生成し、生成した誤り検査値を後続するビット列変換回路５２５へ出力する回路である。
【０１７２】
生成回路５２１の入力側は、格納回路５２２の最終段の格納回路（Ｐ−Ｎ）とデータ線で接続され、制御回路５２３と制御線で接続されている。また、生成回路５２１の出力側は、ビット列変換回路５２５とデータ線で接続されている。そして、制御回路５２３は、バッファ手段５１０の制御回路５１２から出力された作動許可信号に基づいて、制御コマンドを入力して演算処理するよう作動させるための作動許可信号を生成回路５２１に対して出力する。
【０１７３】
生成回路５２１は、制御回路５２３から当該作動許可信号が入力されると、制御回路５２３の格納回路５２２へのシフト処理信号に伴って出力された制御コマンド（Ｐ−Ｎ）を入力する。そして、生成回路５２１は、入力した制御コマンド（Ｐ−Ｎ）に対し、予め設定された生成方式によって演算処理を施し、誤り検査値（Ｐ−Ｎ）を生成する。そして、生成回路５２１は、生成した誤り検査値（Ｐ−Ｎ）を、後続するビット列変換回路５２５へ出力する。
【０１７４】
生成方式は、予め演出制御部１２０との間で取り決めてあれば、特に限定されない。生成方式は、例えば、チェックサム方式、ＣＲＣ方式、奇数パリティ方式、偶数パリティ方式、群計数チェック方式、垂直パリティ方式、水平パリティ方式、またはハミング符号方式等の公知の方式を用いることができる。なお、生成回路５２１は、格納回路５２２が出力した制御コマンドをそのまま入力し、演算するように構成することもできるし、格納回路５２２が出力した制御コマンドの一部だけを入力し、演算するように構成することもできる。例えば、制御コマンドは後述するように１バイトの「ＭＯＤＥ」の情報と１バイトの「ＤＡＴＡ」の情報とから構成されているが、出力された制御コマンドの「ＭＯＤＥ」の情報のみを入力し、演算するように構成することができる。
【０１７５】
ビット列変換回路５２５は、生成回路５２１から出力された誤り検査値を入力し、入力した誤り検査値に対して、ビット列変換処理を施す回路である。具体的には、ビット列変換回路５２５には、入力した誤り検査値のビット列に対してビットローテート演算を行う複数のローテート演算器と、ビットローテート演算で用いるシフト量を制御するシフト量制御部Ｃとが備えられている。
【０１７６】
ビット列変換回路５２５を担う複数のローテート演算器は、規則的に変動するシフト量Ａを用いてビットローテート演算を行うローテート演算器Ａと、ランダムに変動するシフト量Ｂを用いてビットローテート演算を行うローテート演算器Ｂとを少なくとも備えている。ローテート演算器Ａ、Ｂは、誤り検査値と同等のビット幅を有するシフトレジスタ等からそれぞれ構成されている。そして、ローテート演算器Ａ、Ｂの入力側は、生成回路５２１とデータ線でそれぞれ接続され、シフト量制御部Ｃと制御線でそれぞれ接続されている。また、ローテート演算器Ａ、Ｂの出力側は、入力選択回路５２４とデータ線でそれぞれ接続されている。更に、ローテート演算器Ｂの出力側は、シフト量制御部Ｃとデータ線で接続されている。
【０１７７】
そして、ローテート演算器Ａ、Ｂは、制御回路５２３の生成回路５２１への作動許可信号に伴って出力された誤り検査値を入力し、入力した誤り検査値のビット列に対してビットローテート演算を行った後、それぞれの演算結果を、後続する入力選択回路５２４へ出力する。このとき、ローテート演算器Ａは、シフト量制御部Ｃから設定されたシフト量Ａでビットローテート演算を行い、ローテート演算器Ｂは、シフト量制御部Ｃから設定されたシフト量Ｂでビットローテート演算を行う。
【０１７８】
ローテート演算器Ａ、Ｂを構成するシフトレジスタは、当該シフトレジスタを構成する各フリップフロップの最終段のフリップフロップの出力が、フィードバックして初段のフリップフロップの入力に直に接続されている。ローテート演算器Ａ、Ｂは、誤り検査値のビット列を構成する各ビットが入力されると、クロック信号に同期して、各ビットを、シフト量制御部Ｃから設定されたシフト量Ａ、Ｂが示すビット数分だけ、所定方向（以下、「シフト方向」という）にそれぞれシフトさせる。そして、ローテート演算器Ａ、Ｂは、最終段のフリップフロップから出力された出力ビットを、初段のフリップフロップに入力ビットとしてフィードバックする。
【０１７９】
なお、シフト方向は、ビット列の最上位ビットから最下位ビットへ向かう方向、又は最下位ビットから最上位ビットへ向かう方向のいずれかの方向である。本実施形態では、シフト方向は、ローテート演算器Ａ、Ｂでそれぞれ異なった方向であっても、予め演出制御部１２０との間で取り決めてあれば、基本的に任意である。
【０１８０】
一方、シフト量制御部Ｃは、ブート処理中には、更新タイミング条件設定処理として、メインＣＰＵ１１０ａから設定されたＨＷパラメータに基づいて、シフト量Ａに係るデフォルトの更新タイミング条件を決定し、決定した更新タイミング条件に応じた設定を行う。また、シフト量制御部Ｃは、ブート処理中には、シフト量設定処理として、予め定められたデフォルトのシフト量Ａ、Ｂをローテート演算器Ａ、Ｂへ設定する処理を行う。また、シフト量制御部Ｃは、ブート処理後のコマンド送信処理の際に行われるビット変換処理の際に、ローテート演算器Ｂから出力されるビット列が変換された誤り検査値に基づいて、シフト量設定処理として、シフト量Ａ、Ｂを新たなシフト量Ａ、Ｂに更新し、更新後のシフト量Ａ、Ｂをローテート演算器Ａ、Ｂに設定する処理を行う。
【０１８１】
シフト量制御部Ｃには、ローテート演算器Ａ、Ｂに設定されるシフト量Ａ、Ｂを記憶しておくシフト量記憶領域（ＣＳ）と、更新タイミング条件を記憶しておく更新タイミング条件記憶領域（ＣＲ）とが設けられている。そして、シフト量制御部Ｃの入力側は、ローテート演算器Ｂとデータ線で接続され、制御回路５２３と制御線で接続されている。また、シフト量制御部Ｃの出力側は、ローテート演算器Ａ、Ｂとそれぞれ制御線で接続されている。更に、シフト量制御部Ｃは、バスを介してメインＣＰＵ１１０ａと接続され、メインＣＰＵ１１０ａとの間では、ＣＰＵインターフェース方式に対応する入出力制御方式でデータ送受が制御されている。
【０１８２】
デフォルトのシフト量Ａ、Ｂは、予め演出制御部１２０との間で取り決められた値であれば、基本的に任意であり、シフト量Ａとシフト量Ｂとの間で同じ値でも異なる値でもよく、メインＲＯＭ１１０ｂの所定の記憶領域に記憶しておく。メインＣＰＵ１１０ａは、ブート処理中の初期値設定処理の際に、メインＲＯＭ１１０ｂからデフォルトのシフト量Ａ、Ｂを読み出し、シフト量制御部Ｃのシフト量記憶領域（ＣＳ）にそれぞれ記憶しておく。
【０１８３】
そして、シフト量制御部Ｃは、ブート処理中のＨＷパラメータ設定処理の際に、メインＣＰＵ１１０ａから出力されたＨＷパラメータをデータバス上から取り込む。シフト量制御部Ｃには、予め用意されたシフト量Ａに係る複数の更新タイミング条件と複数のＨＷパラメータとの対応関係が分かるデータテーブルが設けられている。そして、シフト量制御部Ｃは、取り込んだＨＷパラメータによって特定の更新タイミング条件を一義的に決定することができる。そして、シフト量制御部Ｃは、ブート処理中の更新タイミング条件設定処理として、メインＣＰＵ１１０ａから設定されたＨＷパラメータに対応する更新タイミング条件を、シフト量Ａに係るデフォルトの更新タイミング条件として更新タイミング条件記憶領域（ＣＲ）に記憶しておく。なお、図５では、メインＣＰＵ１１０ａとシフト量制御部Ｃとの間には、ＨＷパラメータおよび乱数値のデータ送受のみが記載されているが、実際には、アドレスデータならびに書き込み信号および読み出し信号等の入出力を伴う。
【０１８４】
また、制御回路５２３は、ブート処理中の変換方式設定処理の際に、決定手段５４０の決定回路５４２から出力された変換方式制御信号の入力に基づいて、ローテート演算器に設定するべきシフト量をシフト量制御部Ｃにて制御させるための制御信号（以下、「シフト量制御信号」という）を、シフト量制御部Ｃへ出力する。シフト量制御部Ｃは、制御回路５２３から出力された当該シフト量制御信号の入力に基づいて、シフト量Ａ、Ｂに係るシフト量設定処理を行う。具体的には、シフト量制御部Ｃは、ブート処理中のシフト量Ａに係るシフト量設定処理として、シフト量記憶領域（ＣＳ）に記憶されたシフト量Ａをローテート演算器Ａに設定するための制御信号（以下、「シフト量Ａ設定信号」という）をローテート演算器Ａに出力し、シフト量記憶領域（ＣＳ）に記憶されたデフォルトのシフト量Ａをローテート演算器Ａに設定する。また、シフト量制御部Ｃは、ブート処理中のシフト量Ｂに係るシフト量設定処理として、シフト量Ｂ設定信号をローテート演算器Ｂに出力し、シフト量記憶領域（ＣＳ）に記憶されたデフォルトのシフト量Ｂをローテート演算器Ｂに設定する。
【０１８５】
本実施形態の変換方式は、上記のように、所定の動作モードの期間が開始すると、決定手段５４０の変換方式設定処理によって変換方式Ａから変換方式Ｂに変更され、所定の動作モードの期間が終了すると、決定手段５４０の変換方式設定処理によって変換方式Ｂから変換方式Ａに変更される。このとき、シフト量制御部Ｃは、変換方式Ａでビット列変換処理を施す際のビットローテート演算で用いられるシフト量Ａを、予め演出制御部１２０との間で取り決められた更新の方式（以下、「更新方式」という）に従って更新する。
【０１８６】
シフト量Ａに係る更新方式は、予め演出制御部１２０との間で取り決められ、シフト量Ａが規則的に変動すれば、基本的に任意である。例えば、シフト量制御部Ｃが、デフォルトのシフト量Ａに対して、予め設けられた所定値を更新タイミングが到来する毎に累積させていく方式などを採用することができる。また、シフト量制御部Ｃが、デフォルトのシフト量Ａに対して、既存の遊技機が備えるパリティチェックやチェックサム等の演算機能を流用して、ローテート演算器Ｂから出力された誤り検査値を演算し、得られた結果を、更新タイミングが到来する毎に累積させていく方式などを採用することができる。この場合、ローテート演算器Ｂから出力された誤り検査値および既存の遊技機が備える演算機能を用いて得られた結果を累積させていく方式では、固定データである所定値を予め主制御部１１０に保持しておく必要がなく、静的な解析手法で不正に解析される虞れがないため、好適である。
【０１８７】
また、図５では省略したが、これら既存の遊技機が備えるパリティチェック等の演算機能を実現するパリティチェック回路等を、生成手段５２０内に設け、シフト量Ａに係る更新タイミングの到来に応じて、当該パリティチェック回路等から取得してきた値を用いることができる。この場合、シフト量Ａの更新は、ワイヤードロジック制御方式のハードウェアで回路構成された生成手段５２０の内部処理だけで実現可能となる。このため、セキュリティ機能を追加に伴って増大する主制御部１１０の処理負荷やコードサイズを抑制することができ、好適である。何れにしても、シフト量Ａに係る更新方式が、演出制御部１２０との間で整合しており、ローテート演算器Ｂから出力された誤り検査値に基づいてシフト量Ａが規則的に変動する方式であればよい。
【０１８８】
また、更新のタイミングを規定する更新タイミング条件は、予め演出制御部１２０との間で取り決められて、シフト量Ａが規則的に変動するように更新されるのであれば、基本的に任意である。例えば、シフト量制御部Ｃを、バッファ手段５１０のデータバッファ５１１とデータ線で接続したり、決定手段５４０の決定回路５４２と制御線で接続したりして、バッファ手段５１０から出力された制御コマンドの生成個数Ｐが所定数であるか否かを計数する。そして、バッファ手段５１０から出力された制御コマンドの生成個数Ｐが所定数以上となったら、シフト量設定処理を行ってシフト量Ａを更新するように構成することができる。
【０１８９】
本実施形態のシフト量Ａに係る更新タイミング条件は、決定手段５４０の変換方式設定処理によって設定される変換方式が、変換方式Ｂから変換方式Ａに変更される毎で、シフト量Ａが規則的に変動されるようにシフト量Ａを更新するように規定されているものとする。具体的には、本実施形態では、所定の動作モードの期間が開始し、変換方式Ｂでビット列変換処理が施された誤り検査値が、制御コマンドに付加されて演出制御部１２０へ送信されている間に、シフト量Ａを更新しておき、当該所定の動作モードの期間が終了した後には、更新されたシフト量Ａを用いたビットローテート演算によってビット列が変換された誤り検査値が制御コマンドに付加されるような更新タイミング条件を規定する。
【０１９０】
この場合、シフト量Ａに係る更新タイミング条件は、所定の動作モードの期間中に制御コマンドに付加される誤り検査値に基づいて規定されていれば、基本的に任意である。本実施形態では、所定の動作モードの期間中に、制御コマンドに付加される誤り検査値が、当該期間中で何番目に付加される誤り検査値なのかに応じて、シフト量Ａに係る複数の更新タイミング条件が予め用意されているものとする。例えば、所定の動作モードの期間中に、最初に制御コマンドに付加される誤り検査値に基づいて規定された更新タイミング条件や、最後に制御コマンドに付加される誤り検査値に基づいて規定された更新タイミング条件や、所定番目に制御コマンドに付加される誤り検査値に基づいて規定された更新タイミング条件等が、複数用意されているものとする。
【０１９１】
このうち、本実施形態では、ブート処理中の更新タイミング条件設定処理の際に、ＨＷパラメータに対応する更新タイミング条件として、所定の動作モードの期間中で、最初に制御コマンドに付加される誤り検査値に基づいて規定された更新タイミング条件が設定されるものとする。すなわち、本実施形態では、ブート処理後に所定の動作モードの期間が開始し、ローテート演算器Ｂから出力された誤り検査値（すなわち、変換方式Ｂでビット列が変換された誤り検査値）が、当該期間中で最初に付加手段５３０へ出力されるときに、シフト量Ａを更新するものとする。
【０１９２】
より詳細には、ブート処理後、所定の動作モードの期間の開始に伴って、当該期間中の最初にコマンド送信処理が行われる際に、生成手段５２０の制御回路５２３には、決定手段５４０の決定回路５４２から変換方式制御信号が出力される。制御回路５２３は、変換方式制御信号の入力に基づいて、シフト量制御部Ｃにシフト量制御信号を出力する。シフト量制御部Ｃは、制御回路５２３から出力された当該シフト量制御信号の入力に基づいて、所定の動作モードの期間が開始したことを検知することができる。
【０１９３】
例えば、シフト量制御部Ｃに、制御回路５２３から出力されたシフト量制御信号の入力回数を計数するカウンタ回路等を設けておき、シフト量制御信号が入力される毎に１を加算する。そして、シフト量制御部Ｃは、当該カウンタ回路等の値が偶数または奇数に遷移したことを検知することで、シフト量制御部Ｃは、所定の動作モードの期間の開始または終了したことを検知することができる。例えば、カウンタ回路等の初期値が０であり、ブート処理中の変換方式設定処理によって出力されるシフト量制御信号によって１が加算されることを含めると、カウンタ回路等の値が偶数に遷移すれば、所定の動作モードの期間が開始したことを示し、その後、カウンタ回路等の値が奇数に遷移すれば、所定の動作モードの期間が終了したことを示す。よって、シフト量制御部Ｃは、シフト量制御信号の入力に基づいて、所定の動作モードの期間が開始または終了したことを検知し、現在が所定の動作モードの期間中であるか否かを判断することができる。すなわち、シフト量制御部Ｃは、シフト量制御信号の入力に基づいて、シフト量Ａ、Ｂの更新タイミングを判断することができる。
【０１９４】
シフト量制御部Ｃは、所定の動作モードの期間が開始したことを検知した場合、シフト量設定処理を行ってシフト量Ａを更新する。すなわち、シフト量制御部Ｃは、シフト量Ａに係るシフト量設定処理として、ローテート演算器Ｂから出力された誤り検査値に基づいて、シフト量記憶領域（ＣＳ）に記憶されたシフト量Ａの値を、シフト量Ａに係る所定の更新方式に従って更新する。そして、シフト量制御部Ｃは、シフト量Ａ設定信号をローテート演算器Ａに出力し、シフト量記憶領域（ＣＳ）に記憶された更新後のシフト量Ａをローテート演算器Ａに設定する。
【０１９５】
なお、その後の所定の動作モードの期間中では、シフト量制御部Ｃには、ローテート演算器Ｂから誤り検査値が出力されるが、当該誤り検査値は、所定の動作モードの期間中で最初に出力された誤り検査値ではないため、シフト量Ａに係る更新タイミング条件は成立せず、シフト量Ａは更新されない。その後、所定の動作モードの期間が終了して、シフト量Ａを用いたビットローテート演算によってビット列が変換された誤り検査値が付加手段５３０へ出力される期間を経て、再び所定の動作モードの期間が開始し、決定手段５４０から変換方式制御信号が出力されれば、シフト量制御部Ｃは、上記のようにシフト量Ａを再び更新する。
【０１９６】
一方、シフト量Ｂは、予め演出制御部１２０との間で取り決められておらず、ランダムに変動する値に設定される。シフト量Ｂに係る更新方式は、シフト量Ａのようにシフト量が規則的に変動する方式ではなく、乱数値をシフト量Ｂに用いる方式とする。この乱数値は、図５に示すように、メインＲＡＭ１１０ｃの所定の乱数値記憶領域に記憶された既存の遊技機が備える特別図柄判定用乱数値や大当たり図柄用乱数値等を流用することができる。
【０１９７】
また、乱数値について、図５では省略したが、生成手段５２０内に既存の遊技機が備える乱数生成回路を設け、シフト量Ｂに係る更新タイミングの到来に応じて、当該乱数生成回路から取得してきた値を、シフト量Ｂの値に用いることができる。この場合、シフト量Ｂの更新は、ワイヤードロジック制御方式のハードウェアで回路構成された生成手段５２０の内部処理だけで実現可能となる。このため、セキュリティ機能を追加に伴って増大する主制御部１１０の処理負荷やコードサイズを抑制することができ、好適である。何れにしても、シフト量Ｂの更新方式として用いる乱数値が、演出制御部１２０との間で取り決められた値とはなっておらず、当該乱数値を取得する乱数生成回路等が、演出制御部１２０に設けられた乱数生成回路と同期して作動するものでなければよい。
【０１９８】
また、本実施形態でのシフト量Ｂに係る更新タイミング条件は、所定の動作モードの期間が開始し、変換方式Ｂでビット列変換処理が施された誤り検査値が、制御コマンドに付加されて演出制御部１２０へ送信される毎に、その都度、シフト量Ｂを更新するように規定されているものとする。
【０１９９】
より詳細には、所定の動作モードの期間の開始に伴って、当該期間中の最初にコマンド送信処理が行われる際に、制御回路５２３は、決定手段５４０から出力された変換方式制御信号の入力に基づいて、シフト量制御信号をシフト量制御部Ｃへ出力する。シフト量制御部Ｃは、制御回路５２３から出力された当該シフト量制御信号の入力に基づいて、所定の動作モードの期間が開始したことを検知することができる。
【０２００】
シフト量制御部Ｃは、所定の動作モードの期間が開始したことを検知した場合、シフト量設定処理を行ってシフト量Ｂを更新する。すなわち、シフト量制御部Ｃは、シフト量Ｂに係るシフト量設定処理として、ローテート演算器Ｂから出力された誤り検査値が入力される毎に、シフト量記憶領域（ＣＳ）に記憶されたシフト量Ｂの値を、シフト量Ｂに係る所定の更新方式に従って更新する。そして、シフト量制御部Ｃは、シフト量Ｂ設定信号をローテート演算器Ｂに出力し、シフト量記憶領域（ＣＳ）に記憶された更新後のシフト量Ｂをローテート演算器Ｂに設定する。なお、更新後のシフト量Ｂは、所定の動作モードの期間中に行われる次回のコマンド送信処理においてローテート演算器Ｂがビットローテート演算を行う際に反映される。
【０２０１】
なお、その後の所定の動作モードの期間中は、制御回路５２３は、変換方式制御信号が出力されないためシフト量制御信号をシフト量制御部Ｃへ出力しないが、ローテート演算器Ｂから出力された誤り検査値は、その都度、制御コマンドに付加されて演出制御部１２０へ送信されるとともに、シフト量制御部Ｃへ入力される。このため、シフト量制御部Ｃは、ローテート演算器Ｂから出力された誤り検査値の入力に基づいて、その都度、新たな乱数値を取得し、シフト量Ｂを更新していけばよい。
【０２０２】
また、所定の動作モードの期間が終了した際には、制御回路５２３は、変換方式制御信号の入力に基づいてシフト量制御信号をシフト量制御部Ｃへ出力する。シフト量制御部Ｃは、制御回路５２３から出力された当該シフト量制御信号の入力に基づいて、所定の動作モードの期間が終了したことを検知することができる。
【０２０３】
シフト量制御部Ｃは、所定の動作モードの期間が終了したことを検知した場合、シフト量設定処理を行う必要はない。すなわち、シフト量制御部Ｃは、ローテート演算器Ｂから出力された誤り検査値を破棄する等だけすればよく、シフト量Ｂの更新を行う必要はない。その後、シフト量Ａを用いたビットローテート演算によってビット列が変換された誤り検査値が制御コマンドに付加された後、再び所定の動作モードの期間が開始すれば、シフト量制御部Ｃは、上記のようにシフト量Ｂを再び更新する。
【０２０４】
なお、シフト量制御部Ｃは、所定の動作モードの期間が終了した後でも、シフト量Ｂの更新を行ってもよいが、シフト量Ｂに係る更新方式として、メインＲＡＭ１１０ｃの乱数値記憶領域に記憶された乱数値を用いる場合は、メインＣＰＵ１１０ａとの間で、乱数値のデータ送受に係る不必要な処理が発生する。この場合、メインＣＰＵ１１０ａに余計な処理負荷がかかるため、所定の動作モードの期間が終了したことを検知した場合には、シフト量Ｂの更新は行わない方が好適である。また、シフト量Ｂに係る更新方式として、生成手段５２０内に設けた乱数生成回路で乱数値を取得すると、乱数値のデータ送受に係る処理が発生しないため、当該期間が終了した後にシフト量Ｂを更新するか否かを問わず、メインＣＰＵ１１０ａへの負荷は最小限に抑制される。しかも、シフト量Ｂに係る更新タイミング条件を設計するときに、メインＣＰＵ１１０ａへの負荷を考慮することで設計自由度が制約されることもなく、好適である。
【０２０５】
このように、シフト量Ａは、予め演出制御部１２０との間で取り決められた所定の更新方式および更新タイミング条件に基づいて更新され、規則的に変動する。一方、シフト量Ｂは、予め演出制御部１２０との間で取り決められていない乱数値で更新され、ランダムに変動する。このため、シフト量Ｂを用いてビットローテート演算を行うローテート演算器Ｂでは、１回のビット列変換処理の前後でビット列を構成する各ビットの位置が結果的に何ビット移動したのかを示す「ローテート数」もランダムに変動することとなる。
【０２０６】
しかしながら、ローテート演算器Ｂでは、ビット列変換処理毎でシフト量Ｂはランダムに変動されるものの、１回のビット列変換処理の中では、各ビットは規則的にシフトされるだけであり、ビット列変換処理毎で各ビットの値の組み合わせ自体が変化するわけではない。このため、演出制御部１２０側ではビットローテート演算を複数回行えば、ビット列が変換されていない誤り検査値（以下、「元の誤り検査値」という）のビット列に戻すことができる。ローテート数は、１回のビット列変換処理の前後でビット列を構成する各ビットの位置が結果的に何ビット移動したのかを示している。このため、ローテート数の取り得る範囲は、誤り検査値のビット列のビット幅で規定される。
【０２０７】
例えば、誤り検査値のビット幅を１バイト（８ビット）とした場合、ローテート数の取り得る範囲は０以上８以下の整数となり、ビットローテート演算を少なくとも８回行えば、元の誤り検査値のビット列に戻すことができる。よって、例えば、シフト量Ｂとして用いる乱数値の取り得る範囲が０〜２５５であっても、誤り検査値のビット幅を１バイト（８ビット）とした場合には、ビットローテート演算を少なくとも８回行うだけで、元の誤り検査値のビット列に戻すことができる。
【０２０８】
また、特にシフト量Ｂがランダムに変動するローテート演算器Ｂでは、元の誤り検査値のビット列が異なっていても、ビット列変換処理後には同じビット列の誤り検査値が出力される場合が生じる。一般的には伝送データに付加する誤り検出符号が、伝送データ毎で重複した値をとることは、誤り検出の信頼度を低下させるものとして回避するべき事象であり、問題となる。しかしながら、本実施形態では、ビット列変換毎で重複した値が生じても元の誤り検査値に戻すことが可能であって、元の誤り検査値自体に誤り検出の信頼度があるため、問題とはならない。むしろ、ビット列変換毎で重複した値が生じた方が、不正者が制御コマンドと誤り検査値を複数窃取したときに、シフト量の変動に関する規則性の有無や変換方式の変更の有無を解析することが困難となり、制御コマンドと誤り検査値の対応関係を解析することがより一層困難となり好適である。
【０２０９】
このようにして、ビット列変換回路５２５では、ブート処理後のコマンド送信処理の際に、生成回路５２１から出力された誤り検査値のビット列に対して、上記構成のシフト量Ａ、Ｂを用いるローテート演算器Ａ、Ｂにてビットローテート演算を行い、ビット列が変換された誤り検査値を、後続する入力選択回路５２４へそれぞれ出力する。
【０２１０】
本実施形態では、ビット列変換回路５２５を比較的簡易な回路構成であるシフトレジスタで実現可能なローテート演算器Ａ、Ｂで構成したため、ローテート演算器Ａの回路を設計した後は、その回路データをローテート演算器Ｂにも流用することが可能である。このため、本実施形態では、回路設計やその検証作業に係る開発工数や開発難易度を抑制することができる。すなわち、本実施形態では、複数の変換方式が設けられたことで制御コマンドと誤り検査値の対応関係が解析困難となりセキュリティ強度が向上するという効果を、設けられた変換方式の数よりも少数の演算器を設計するだけで得ることができ、少ない開発コストで大きな不正防止効果を得ることができる。
【０２１１】
また、本実施形態では、ローテート演算器Ｂでは、シフト量Ｂをランダムに変動させるため、ローテート演算器Ｂでビット列が変換された誤り検査値の各ビットは、ビット列変換処理毎で不規則にシフトする。このため、不正者が、制御コマンドに付加された誤り検査値がどのようなシフト量でビット列が変換されているのかを解析することが困難となる。よって、制御コマンドと誤り検査値の対応関係が更に解析困難となり、セキュリティ強度を更に向上させることができる。
【０２１２】
また、本実施形態では、シフト量がランダムに変動する演算器を、ローテート演算器Ｂのみとしている。また、ローテート演算器Ｂでビット列が変換された誤り検査値が、制御コマンドに付加されて演出制御部１２０へ送信される場合も、所定の動作モードの期間の際、すなわち、所定の制御コマンド群が演出制御部１２０へ送信される期間に限定した。このため、演出制御部１２０側での誤り検査処理にて元の誤り検査値のビット列に戻す際に、シフト量をランダムに変動させることでビット列変換処理の試行回数が増加する傾向を、最大限抑制することができる。
【０２１３】
また、本実施形態では、ローテート演算器Ａで用いるシフト量Ａを規則的に変動させている。よって、本実施形態では、ローテート演算器Ｂにてビット列が変換された誤り検査値が制御コマンドに付加される期間以外の際、すなわち、所定の動作モードの期間以外の際でも、ローテート演算器Ａでビット列が変換された誤り検査値の各ビットが、ビット列変換処理毎で変動する。このため、本実施形態では、不正者が、制御コマンドに付加された誤り検査値がどのようなシフト量でビット列が変換されているのかを解析することが、所定の動作モードの期間以外に送信された誤り検査値に対しても困難となり、セキュリティ強度を更に向上させることができる。
【０２１４】
また、ローテート演算器Ａでは、シフト量Ａの更新に関する規則性は、シフト量Ａに係る更新方式および更新タイミング条件に依存し、更新タイミング条件は、主制御部１１０のブート処理時の初期値設定時以外ではアクセスされないメインＲＯＭ１１０ｂの特定の記憶領域に記憶されているＨＷパラメータの値に基づいて決定されている。よって、不正者がシフト量Ａの更新に関する規則性を解析することが困難となり、セキュリティ強度を更に向上させることができる。
【０２１５】
なお、本実施形態では、上記のように、所定の動作モードの期間が開始または終了されて、変換方式を変更するか否かの条件である変更条件が成立するタイミングと、実際に変換方式を変更するために決定手段５４０から変換方式制御信号が出力されるタイミングとを分散させることができる。このとき、両者のタイミングを分散させていても、本実施形態において、シフト量制御部Ｃにおけるシフト量を更新するタイミングは、上記に説明したように、変換方式制御信号が出力されるタイミングに応じた、シフト量制御信号の出力タイミングに基づいて規定する。本実施形態の説明において、「所定の動作モードの期間が開始したとき」、「所定の動作モードの期間が終了したとき」、または「所定の動作モードの期間中であるとき」との表現には、上記両者のタイミングを分散させている場合も含むものとする。
【０２１６】
入力選択回路５２４は、マルチプレクサ等で構成されており、ビット列変換回路５２５と付加手段５３０との間の接続を選択的に切り替える機能を有する回路である。具体的には、入力選択回路５２４の入力側は、ビット列変換回路５２５を担う複数のローテート演算器（図５では、ローテート演算器Ａ、Ｂ）とデータ線でそれぞれ接続され、制御回路５２３と制御線で接続されている。また、入力選択回路５２４の出力側は、付加手段５３０の入力選択回路５３１とデータ線で接続されている。入力選択回路５２４は、デフォルトは変換方式Ａでビット列変換処理が施された誤り検査値を出力するローテート演算器Ａとの接続が有効となるように予め設定されており、ローテート演算器Ａから出力された誤り検査値を取り込み、付加手段５３０の入力選択回路５３１へ出力する。
【０２１７】
制御回路５２３は、変換方式設定処理にて決定手段５４０の決定回路５４２から出力された変換方式制御信号の入力に基づき、入力選択回路５２４のローテート演算器Ａ、Ｂのいずれかとの接続を有効とするための制御信号（以下、「入力選択信号」という）を入力選択回路５２４へ出力する。この入力選択信号は、変換方式制御信号が示す特定の変換方式でビット列変換処理が施された誤り検査値のみが入力されるように、当該変換方式に対応するローテート演算器との接続のみを有効とするための信号である。入力選択回路５２４は、例えば、制御回路５２３から、ローテート演算器Ｂとの接続を有効とする入力選択信号が入力されると、ローテート演算器Ｂとの接続のみを有効とするように切り替える。そして、入力選択回路５２４は、ローテート演算器Ｂから出力された変換方式Ｂでビット列変換処理が施された誤り検査値を取り込み、付加手段５３０の入力選択回路５３１へ出力する。
【０２１８】
このようにして、生成手段５２０は、バッファ手段５１０から出力された制御コマンド（Ｐ）に対して付加する誤り検査値（Ｐ−Ｎ）に対し、複数の変換方式でビット列変換処理を施すことができる。そして、生成手段５２０は、変換方式制御信号に応じた入力選択信号が入力選択回路５２４へ入力されることで、決定手段５４０にて決定された変換方式を用いてビット列が変換された誤り検査値（Ｐ−Ｎ）のみを、付加手段５３０へ出力することができる。よって、生成手段５２０から付加手段５３０へ出力される誤り検査値（Ｐ−Ｎ）は、バッファ手段５１０から出力された制御コマンド（Ｐ）よりＮ個前の制御コマンド（Ｐ−Ｎ）を用いて生成される誤り検査値（Ｐ−Ｎ）であって、変更プロトコルに従って決定された変換方式にてビット列が変換された誤り検査値（Ｐ−Ｎ）となる。
【０２１９】
付加手段５３０は、バッファ手段５１０から出力された制御コマンドに対し、生成手段５２０から出力された誤り検査値を付加して、送信部５５０へ出力する回路である。すなわち、付加手段５３０は、検査値付加処理を実行する役割を担っている。また、付加手段５３０の入力側は、バッファ手段５１０および生成手段５２０との間で、同期インターフェース方式でデータ送受が制御されている。一方、付加手段５３０の出力側は、後続する送信部５５０との間で、上記のようにＣＰＵインターフェース方式に対応する入出力制御方式でデータ送受が制御されている。すなわち、付加手段５３０は、自身の入力側と出力側とで異なる入出力制御方式を有し、検査値生成部５００内の同期インターフェース方式と送信部５５０のＣＰＵインターフェース方式に対応する入出力制御方式とを整合する役割を担っている。
【０２２０】
そして、付加手段５３０は、マルチプレクサ等で構成された入力選択回路５３１と、制御回路５３２とを少なくとも備えている。入力選択回路５３１は、予め定められた遡及数と整合するように、バッファ手段５１０から出力された制御コマンドと、生成手段５２０から出力された誤り検査値とを選択的に取り込むような接続切替機能を有する回路である。制御回路５３２は、バッファ手段５１０から出力された作動許可信号の入力に基づいて、入力選択回路５３１の動作を制御する回路である。
【０２２１】
具体的には、入力選択回路５３１の入力側は、バッファ手段５１０のデータバッファ５１１とデータ線で接続され、生成手段５２０の入力選択回路５２４とデータ線で接続されている。また、入力選択回路５３１の入力側は、制御回路５３２と制御線で接続されている。入力選択回路５３１は、デフォルトは、データバッファ５１１との接続を有効となるように予め設定されており、データバッファ５１１から出力された制御コマンドを取り込む。そして、制御回路５３２は、バッファ手段５１０の制御回路５１２から出力された作動許可信号に基づき、所定時間遅延して、入力選択回路５３１の生成手段５２０との接続を有効とするための制御信号（以下、「入力選択信号」という）を入力選択回路５３１へ出力する。入力選択回路５３１は、制御回路５３２から当該入力選択信号が入力されると、生成手段５２０の入力選択回路５２４から出力された誤り検査値を取り込む。
【０２２２】
そして、入力選択回路５３１は、送信部５５０と接続されたデータバスへ取り込んだ制御コマンドおよび誤り検査値を出力する。また、制御回路５３２は、送信部５５０と接続されたアドレスバスに送信部５５０の所定の記憶領域を指定するアドレスデータ、制御バスに書き込み信号を出力する。このとき、制御回路５３２が、上記書き込み信号を出力するタイミングは、バッファ手段５１０の制御回路５１２から出力された作動許可信号の入力に基づいて、生成手段５２０および送信部５５０の動作時間等を考慮しながら、予め定められた遡及数に応じた誤り検査値が付加されるようなタイミングとなるように予め設定されている。
【０２２３】
送信部５５０は、検査値生成部５００から出力された制御コマンドと誤り検査値を演出制御部１２０へ送信する機能を果たし、送信バッファ５５１と、送信回路５５２とを少なくとも備えている。
【０２２４】
送信バッファ５５１は、演出制御部１２０へ送信するデータを一時的に保持するためのバッファ回路である。具体的には、送信バッファ５５１は、検査値生成部５００から出力された制御コマンドを送信バッファ５５１へ書き込むための書き込み信号と、送信バッファ５５１を指定するアドレスデータとが入力されると、当該制御コマンドをバスを介して取り込む。また、送信バッファ５５１は、検査値生成部５００から出力された上記制御コマンドに付加するべき誤り検査値を送信バッファ５５１へ書き込むための書き込み信号と、送信バッファ５５１を指定するアドレスデータとが入力されると、当該誤り検査値をバスを介して取り込む。そして、送信バッファ５５１は、取り込んだ制御コマンドおよび誤り検査値を送信回路５５２へ直ちに受け渡す。
【０２２５】
送信回路５５２は、演出制御部１２０へ送信するデータを、主制御部１１０と演出制御部１２０との間のデータ伝送形式（シリアル伝送形式やパラレル伝送形式）に対応したデータ形式へ変換する機能などを備えている。そして、送信回路５５２は、送信バッファ５５１から受け渡されたデータに上記データ形式変換処理等を施して送信データとし、演出制御部１２０へ直ちに送信する。
【０２２６】
上述のような主制御部１１０の認証処理に関する構成によって、主制御部１１０から演出制御部１２０へ送信される制御コマンドには、以下に例示するような手順で誤り検査値が付加されていく。以下に、誤り検査値の付加手順について、図７を用いて説明する。図７では、格納しておいた制御コマンドがクリアされてから１１番目に出力された制御コマンド（制御コマンド（１）〜制御コマンド（１１））までの例を示す。
【０２２７】
なお、図７では、変換方式Ａを「方式Ａ」、変換方式Ｂを「方式Ｂ」と表記する。また、図７では、誤り検査値（Ｐ）に対し、変換方式Ａでビット列変換処理を施したものを「誤り検査値（ＰＡ）」と表記し、変換方式Ｂでビット列変換処理を施したものを「誤り検査値（ＰＢ）」と表記する。また、ビット列変換処理を施すに際に用いるシフト量Ａを適宜更新していくが、更新前のデフォルトのシフト量Ａを用いてビット列変換処理を施したものを「誤り検査値（ＰＡ０）」とし、更新毎に「誤り検査値（ＰＡ１）」、「誤り検査値（ＰＡ２）」、・・・と表記する。誤り検査値（ＰＢ）も同様である。そして、遡及数をＮ＝２、変更タイミングの指標となるＭoの値をＭo＝４とする。
【０２２８】
また、図７では、デフォルトの変換方式を変換方式Ａとする。すなわち、変換方式情報記憶領域（Ｓ）には変換方式Ａに相当する変換方式情報の値が記憶されているが、図７では便宜上、Ｓ＝Ａと表記している。そして、図７では、変更条件を満たす制御コマンドは、所定の制御コマンド群のうち最初に生成される制御コマンド、および、所定の制御コマンド群の生成が終了した後に最初に生成される制御コマンドのどちらかとする。また、変更方式として、変更条件を満たす制御コマンドが生成される毎に、変換方式を変換方式Ａ→変換方式Ｂ等に決定する方式を採用する。
【０２２９】
まず、メインＣＰＵ１１０ａは、コマンド送信処理を実行するタイミングとなると、メインＲＡＭ１１０ｃの生成個数記憶領域（Ｐ）の値を「Ｐ＝１」に更新して、メインＲＯＭ１１０ｂに格納された固有情報を読み出す。そして、メインＣＰＵ１１０ａは、読み出した固有情報を、格納回路５２２の格納回路（Ｐ−１）〜（Ｐ−Ｎ）に対し、初期設定値として設定する。
【０２３０】
図７では、Ｎ＝２であり、格納回路５２２は、２つの格納回路（Ｐ−１）および格納回路（Ｐ−２）を有している。メインＣＰＵ１１０ａは、２つの固有情報を読み出し、初期設定値として、これらに設定する。そして、Ｐ≦Ｎの場合、すなわち、格納回路５２２に格納されていた制御コマンドがクリアされてからＮ番目以前に生成された制御コマンドを送信する場合、当該制御コマンド（Ｐ）に対して付加される誤り検査値（Ｐ−Ｎ）は、固有情報を用いて生成される初期検査値でとなる。図７では、Ｐ≦２であり、制御コマンド（１）および制御コマンド（２）に対して、初期検査値がそれぞれ付加される。なお、初期検査値は、制御コマンドに付加される順番に、それぞれ初期検査値（１）〜初期検査値（Ｎ）と表記する。
【０２３１】
続いて、メインＣＰＵ１１０ａは、制御コマンド（１）をバッファ手段５１０へ出力する。バッファ手段５１０は、メインＣＰＵ１１０ａから出力された制御コマンド（１）を決定手段５４０、生成手段５２０、および付加手段５３０へ出力する。決定手段５４０は、変換方式設定処理を行う。具体的には、判定回路５４１は、バッファ手段５１０から出力された制御コマンド（１）、すなわち、メインＣＰＵ１１０ａが出力した制御コマンド（１）を入力して、制御コマンド（１）が変更条件を満たす制御コマンドであるか否かを判定し、判定結果信号を決定回路５４２へ出力する。以下、図７の説明において同様とする。
【０２３２】
決定回路５４２は、判定結果信号を入力すると、生成個数記憶領域（Ｐ）の値を「Ｐ＝１」に更新して、当該制御コマンド（１）が生成個数の値がいくつの制御コマンドであるかを把握する（以下、図７の説明において同様とする）。そして、決定回路５４２は、判定結果信号を確認し、当該制御コマンド（１）が変更条件を満たす制御コマンドであるかを確認する（以下、図７の説明において同様とする）。図７では、制御コマンド（１）は、変更条件を満たす制御コマンドではないとする。このとき、変更タイミング情報記憶領域（Ｍi）はクリアされたままであり、変更タイミング情報Ｍiを設定する必要はない。また、変換方式情報記憶領域（Ｓ）の値も、デフォルトの「Ａ」のままであり、方式Ａでビット列変換処理が施された誤り検査値を付加する。また、Ｐ≦２であり、制御コマンド（１）に付加する誤り検査値は、固有情報に方式Ａでビット列変換処理が施された初期検査値（１）となる。制御コマンド（２）が出力されたときも同様であり、制御コマンド（２）に付加する誤り検査値は、固有情報に方式Ａでビット列変換処理が施された初期検査値（２）となる。
【０２３３】
続いて、メインＣＰＵ１１０ａから制御コマンド（３）が出力されたときを説明する。図７では、制御コマンド（３）は変更条件を満たす制御コマンドではないので決定手段５４０は、変更タイミング情報Ｍiを設定しない。また、変換方式情報記憶領域（Ｓ）の値も、デフォルトの「Ａ」のままであり、方式Ａでビット列変換処理が施された誤り検査値を付加する。更に、生成個数記憶領域（Ｐ）の値（Ｐ＝３）が遡及数の値（Ｎ＝２）より大きい（Ｐ＞Ｎ）。よって、制御コマンド（３）に付加する誤り検査値は、方式Ａでビット列変換処理が施された誤り検査値（Ｐ−Ｎ）、すなわち、誤り検査値（１Ａ）となる（以下、図７の説明において同様とする）。なお、このときは変更タイミングではないため、決定手段５４０から生成手段５２０の制御回路５２３へ変換方式制御信号が出力されない。このため、生成手段５２０のビット列変換回路５２５を担うシフト量制御部Ｃに対しても、制御回路５２３からシフト量制御信号が出力されない。よって、変換方式Ａで用いるシフト量Ａはデフォルトのシフト量Ａのままであり、制御コマンド（３）に付加する誤り検査値は、誤り検査値（１Ａ０）となる（以下、図７の説明において同様とする）。
【０２３４】
続いて、メインＣＰＵ１１０ａから制御コマンド（４）が出力されたときを説明する。図７では、制御コマンド（４）は変更条件を満たす制御コマンドであるので、決定手段５４０は、変更タイミング情報ＭiをＭ１として設定する。変更タイミング情報Ｍ１は、上述のように、Ｍ１＝Ｐ＋Ｍo＝４＋４＝８であり、決定手段５４０は、変更タイミング情報記憶領域（Ｍ１）にＭ１＝８の値を記憶する。これをもって、決定手段５４０は、生成個数記憶領域（Ｐ）の値がＰ＝８になったタイミングで、変換方式情報記憶領域（Ｓ）の値を変更しなければならないことが分かる。また、決定手段５４０は、変更タイミング情報記憶領域（Ｍi）の値（Ｍ１＝８）と生成個数記憶領域（Ｐ）の値（Ｐ＝４）とを比較する（以下、図７の説明において同様とする）。図７では、変更タイミング情報記憶領域（Ｍ１）の値と生成個数記憶領域（Ｐ）の値が一致しないため、現在は変更タイミングではなく、変換方式情報記憶領域（Ｓ）の値（Ｓ＝Ａ）は維持され、方式Ａでビット列変換処理が施された誤り検査値を付加する。よって、制御コマンド（４）に付加する誤り検査値は、方式Ａでビット列変換処理が施された誤り検査値（Ｐ−Ｎ）、すなわち、誤り検査値（２Ａ）となる。なお、このときも変更タイミングではないため、生成手段５２０では制御回路５２３からシフト量制御部Ｃに対してシフト量制御信号が出力されない。よって、変換方式Ａで用いるシフト量Ａはデフォルトのシフト量Ａのままであり、制御コマンド（４）に付加する誤り検査値は、誤り検査値（２Ａ０）となる。制御コマンド（５）および制御コマンド（６）が出力されたときも同様であり、制御コマンド（５）および制御コマンド（６）に付加する誤り検査値は、それぞれ誤り検査値（３Ａ０）および誤り検査値（４Ａ０）となる（以下、図７の説明において同様とする）。
【０２３５】
続いて、メインＣＰＵ１１０ａから制御コマンド（７）が出力されたときを説明する。図７では、制御コマンド（７）は変更条件を満たす制御コマンドであるので、決定手段５４０は、変更タイミング情報ＭiをＭ２として設定する。変更タイミング情報Ｍ２は、上述のように、Ｍ２＝Ｐ＋Ｍo＝７＋４＝１１であり、決定手段５４０は、変更タイミング情報記憶領域（Ｍ２）にＭ２＝１１の値を記憶する。これをもって、変更タイミング情報記憶領域（Ｍi）には、Ｍ１＝８とＭ２＝１１の２つの変更タイミング情報が設定されることになる。そして、決定手段５４０は、変更タイミング情報記憶領域（Ｍi）の中で最小値Ｍminをもった変更タイミング情報記憶領域（Ｍ１）の値（Ｍ１＝８）と、生成個数記憶領域（Ｐ）の値（Ｐ＝７）とを比較する。変更タイミング情報記憶領域（Ｍ１）の値と生成個数記憶領域（Ｐ）の値が一致しないため、現在は変更タイミングではなく、変換方式情報記憶領域（Ｓ）の値（Ｓ＝Ａ）は維持され、方式Ａでビット列変換処理が施された誤り検査値を付加する。よって、制御コマンド（７）に付加する誤り検査値は、方式Ａでビット列変換処理が施された誤り検査値（Ｐ−Ｎ）、すなわち、誤り検査値（５Ａ０）となる。
【０２３６】
続いて、メインＣＰＵ１１０ａから制御コマンド（８）が出力されたときを説明する。図７では、制御コマンド（８）は変更条件を満たす制御コマンドではないので、決定手段５４０は、変更タイミング情報Ｍiを新たに設定しない。また、変更タイミング情報記憶領域（Ｍi）の中で最小値Ｍminをもった変更タイミング情報記憶領域（Ｍ１）の値（Ｍ１＝８）が生成個数記憶領域（Ｐ）の値（Ｐ＝８）と一致するため、現在は変更タイミングである。決定手段５４０は、変換方式情報記憶領域（Ｓ）の値（Ｓ＝Ａ）を予め取り決められた変更方式に従って変更する。図７では、方式Ａ→方式Ｂに変更されたとし、決定手段５４０は、方式Ｂに対応する変換方式情報を生成する。そして、決定手段５４０は、変更後の変換方式情報の値のＳ’＝Ｂを、変換方式情報記憶領域（Ｓ）へ記憶する。
【０２３７】
そして、決定手段５４０は、変換方式情報記憶領域（Ｓ）の値（変更後のＳ’＝Ｂ）に基づいて、方式Ｂでビット列変換処理が施された誤り検査値が付加されるように、生成手段５２０の制御回路５２３へ変換方式制御信号を出力する。生成手段５２０の制御回路５２３は、当該変換方式制御信号に基づき、入力選択回路５２４とビット列変換回路５２５のローテート演算器Ｂとの接続を有効に作動させるための入力選択信号を出力して、方式Ｂでビット列変換処理が施された誤り検査値が付加手段５３０へ出力されるように設定する（以下、図７の説明において同様とする）。これにより、制御コマンド（８）に付加する誤り検査値は、方式Ｂでビット列変換処理が施された誤り検査値（Ｐ−Ｎ）、すなわち、誤り検査値（６Ｂ０）となる。また、決定手段５４０は、最小値Ｍminをもった変更タイミング情報記憶領域（Ｍ１）の値（Ｍ１＝８）をクリアする。また、生成手段５２０の制御回路５２３は、当該変換方式制御信号に基づき、ビット列変換回路５２５のシフト量制御部Ｃに対して、シフト量制御信号を出力する。シフト量制御部Ｃは、当該シフト量制御信号および誤り検査値（６Ｂ０）の入力に基づいて、所定の更新方式でシフト量Ａを更新するとともに、乱数値を取得してシフト量Ｂを更新し、シフト量記憶領域（ＣＳ）にそれぞれ記憶する。そして、シフト量制御部Ｃは、シフト量Ａ設定信号およびシフト量Ｂ設定信号をローテート演算器Ａ、Ｂに出力して、シフト量記憶領域（ＣＳ）に記憶された更新後のシフト量Ａ、Ｂをローテート演算器Ａ、Ｂに設定する（以下、図７の説明において同様とする）。
【０２３８】
続いて、メインＣＰＵ１１０ａから制御コマンド（９）が出力されたときを説明する。図７では、制御コマンド（９）は変更条件を満たす制御コマンドではないので決定手段５４０は、変更タイミング情報Ｍiを設定しない。変更タイミング情報記憶領域（Ｍi）の中で最小値Ｍminをもった変更タイミング情報記憶領域（Ｍ２）の値（Ｍ２＝１１）と、生成個数記憶領域（Ｐ）の値（Ｐ＝９）とを比較する。変更タイミング情報記憶領域（Ｍ２）の値と生成個数記憶領域（Ｐ）の値が一致しないため、現在は変更タイミングではなく、変換方式情報記憶領域（Ｓ）の値（Ｓ＝Ｂ）は維持され、方式Ｂでビット列変換処理が施された誤り検査値を付加する。よって、制御コマンド（９）に付加する誤り検査値は、方式Ａでビット列変換処理が施された誤り検査値（Ｐ−Ｎ）、すなわち、誤り検査値（７Ｂ１）となる。また、シフト量制御部Ｃは、シフト量制御信号の未入力および誤り検査値（７Ｂ１）の入力に基づいて、シフト量Ｂのみを更新するべく乱数値を取得してシフト量記憶領域（ＣＳ）の値を更新し、ローテート演算器Ｂに設定する（以下、図７の説明において同様とする）。そして、シフト量制御部Ｃは、再び変更タイミングが到来して制御回路５２３からシフト量制御信号が出力されるまでシフト量Ｂのみを更新して、シフト量Ｂをランダムに変動させる。
【０２３９】
以後、上記と同様な処理を行い、決定手段５４０にて変換方式情報記憶領域（Ｓ）の値を変更しながら、バッファ手段５１０から出力された制御コマンドへ付加するべき誤り検査値にビット列変換処理を施す際の変換方式が決定され、決定された変換方式でビット列変換処理が施された誤り検査値が付加手段５３０にて当該制御コマンドへ付加される。そして、誤り検査値付きの制御コマンドが送信部５５０にて演出制御部１２０へ送信されることとなる。
【０２４０】
その後、主制御部１１０を構成する送信部５５０から送信された制御コマンド（Ｐ）は、演出制御部１２０を構成する受信部６００にて受信される。
図８に、本実施形態に係る演出制御部１２０の認証処理に関する機能ブロックを示す。
演出制御部１２０は、認証処理に関する機能として、受信部６００と、検査部６１０と、検査値生成部６２０とを少なくとも有している。更に、検査値生成部６２０は、受信した制御コマンドを格納する格納部６２２と、誤り検査値を生成する生成部６２１と、生成した誤り検査値にビット列変換処理を施すビット列変換部６２４と、ビット列変換部６２４で用いる変換方式およびシフト量を制御する決定部６２３との機能を少なくとも有している。
【０２４１】
受信部６００は、主制御部１１０からの送信データに上記データ形式変換処理に対応する処理等を施して制御コマンド（Ｐ）とし、自身の受信バッファに記憶する機能を有するものである。また、受信部６００は、制御コマンド（Ｐ）の受信割込要求があった旨を示す信号を出力したり、制御コマンド（Ｐ）の受信が完了したことを示すフラグを立てたりして、サブＣＰＵ１２０ａが、主制御部１１０から送信された制御コマンド（Ｐ）の受信が完了したことを検知できるようにする機能を有するものである。
【０２４２】
また、受信部６００は、受信した誤り検査値付きの制御コマンド（Ｐ）から、付加された誤り検査値（Ｐ−Ｎ）を抽出して検査部６１０へ出力するとともに、誤り検査値（Ｐ−Ｎ）を抽出後の制御コマンド（Ｐ）を検査値生成部６２０へ出力する機能を有するものである。なお、受信部６００の機能を実現する具体的な手段は、図４に示すサブＣＰＵ１２０ａの一部、サブＲＯＭ１２０ｂの一部、サブＲＡＭ１２０ｃの一部、およびコマンド受信用入力ポート（図示せず）等から構成することができる。
【０２４３】
検査値生成部６２０は、受信部６００から出力された制御コマンド（Ｐ）を格納部６２２にて格納する機能を有するものである。また、検査値生成部６２０は、過去に格納部６２２にて格納しておいた制御コマンド（Ｐ−Ｎ）を用いて、予め設定された生成方式で生成部６２１にて誤り検査値（Ｐ−Ｎ）を生成する機能を有するものである。この機能で生成された誤り検査値は、受信した制御コマンド（Ｐ）の正当性を検証するために用いられる。また、検査値生成部６２０は、生成部６２１で生成した誤り検査値（Ｐ−Ｎ）に対して、決定部６２３で決定された変換方式でビット列変換部６２４にてビット列変換処理を施し、検査部６１０へ出力する機能を有するものである。また、検査値生成部６２０は、予め主制御部１１０との間で取り決められた複数の変換方式の中からビット列変換部６２４へ設定するべき特定の変換方式を決定部６２３にて決定する機能を有するものである。また、検査値生成部６２０は、予め主制御部１１０との間で取り決められた更新方式および更新タイミング条件に従って、ビット列変換部６２４にて変換方式Ａでビット列変換処理を施す際のシフト量Ａを決定部６２３にて制御する機能を有するものである。
【０２４４】
すなわち、検査値生成部６２０が有する、過去に格納しておいた制御コマンドを用いて誤り検査値を生成し検査部６１０へ出力するとともに、今回受信した制御コマンドで変換方式を決定する機能（以下、「誤り検査値出力機能」という）は、主制御部１１０が有する誤り検査値付加機能と同様のものである。また、検査値生成部６２０は、主制御部１１０と同様に、誤り検査値出力機能を予め複数有しており、その具体的な実施態様として、主制御部１１０と同様の変更条件およびシフト量Ａに係る更新タイミング条件が予め複数用意されている。そして、誤り検査値出力機能に対する選択情報も、主制御部１１０のＨＷパラメータと同様のものであり、ブート処理中に設定されたＨＷパラメータに応じて特定の変更条件および更新タイミング条件を、デフォルトの変更条件および更新タイミング条件として設定する機能を有するものである。そして、これら演出制御部１２０の誤り検査値出力機能およびその選択情報は、予め主制御部１１０と演出制御部１２０との間で取り決められている。
【０２４５】
そして、決定部６２３が、受信部６００から出力された制御コマンド（Ｐ）に基づいて変換方式を変更する機能においても、主制御部１１０の決定手段５４０が有する変換方式を変更する機能と同様のものである。すなわち、決定部６２３は、制御コマンドが変更条件を満たす制御コマンドであるか否かを判定する機能（主制御部１１０の判定回路５４１に相当）、判定結果に応じて変換方式を決定し、決定した変換方式をビット列変換部６２４へ設定する機能（主制御部１１０の決定回路５４２に相当）を有している。また、決定部６２３は、ビット列変換部６２４へ設定する変換方式が変換方式Ｂから変換方式Ａに変更される毎に、予め主制御部１１０との間で取り決められた更新方式および更新タイミング条件に基づいてシフト量Ａを更新し、シフト量Ａを規則的に変動させる機能（主制御部１１０のシフト量制御部Ｃ）を有している。
【０２４６】
決定部６２３が有するシフト量Ａに係る更新方式は、主制御部１１０のシフト量制御部Ｃと同様に、変換方式Ｂでビット列変換処理が施された誤り検査値に基づいて規定されている。変換方式Ｂでビット列変換処理が施された当該誤り検査値は、ビット列変換部６２４から検査部６１０へ出力された複数の誤り検査値（Ｐ−Ｎ）のうち、受信部６００から出力された誤り検査値と一致した誤り検査値（Ｐ−Ｎ）とする。また、決定部６２３が有するシフト量Ａに係る複数の更新タイミング条件のうち、ブート処理中に設定されるＨＷパラメータに対応する更新タイミング条件は、主制御部１１０のシフト量制御部Ｃと同様に、所定の動作モードの期間中で、最初に制御コマンドに付加される誤り検査値に基づいて規定されているものとする。
【０２４７】
そして、決定部６２３の機能を実現するために、サブＲＡＭ１２０ｃには、主制御部１１０の変更条件記憶領域（Ｄ）に相当する記憶領域や、主制御部１１０の生成個数記憶領域（Ｐ）に相当する受信個数記憶領域（Ｐ）が設けられている。変換方式情報記憶領域（Ｓ）、変更タイミング情報記憶領域（Ｍi）、更新タイミング条件記憶領域（ＣＲ）、シフト量記憶領域（ＣＳ）も同様である。
【０２４８】
また、格納部６２２が、受信部６００から出力された制御コマンド（Ｐ）を格納するとともに、過去に格納しておいた制御コマンド（Ｐ−Ｎ）を生成部６２１へ出力する機能も、主制御部１１０の格納回路５２２が有する機能と同様のものである。また、主制御部１１０または演出制御部１２０が初期化され、格納部６２２に格納しておいた過去の制御コマンドがクリアされた場合には、サブＣＰＵ１２０ａがサブＲＯＭ１２０ｂから固有情報を読み出し、初期設定値として格納部６２２へ設定する格納する機能も、主制御部１１０と同様である。
【０２４９】
また、生成部６２１が、格納部６２２から出力された制御コマンド（Ｐ−Ｎ）を用いて、予め設定された生成方式で誤り検査値（Ｐ−Ｎ）を生成し、ビット列変換部６２４へ出力する機能も、主制御部１１０の生成回路５２１が有する機能と同様のものである。
【０２５０】
また、ビット列変換部６２４が、複数の変換方式（変換方式Ａおよび変換方式Ｂ）を有するとともに、決定部６２３の変換方式制御によって特定の変換方式を設定し、生成部６２１から出力された誤り検査値（Ｐ−Ｎ）に対し、設定された変換方式でビット列変換処理を施し、検査部６１０へ出力する機能も、主制御部１１０のビット列変換回路５２５が有する機能と同様のものである。
【０２５１】
なお、変換方式が変換方式Ａである場合のシフト量Ａは、予め主制御部１１０との間で取り決めた更新方式に従って規則的に変動する値である。この場合、ビット列変換部６２４は、当該更新方式に従って決定部６２３が定めたシフト量Ａを用いて、誤り検査値（Ｐ−Ｎ）のビット列にビットローテート演算を行って、元の誤り検査値のビット列に戻し、検査部６１０へ出力する。また、変換方式が変換方式Ｂである場合のシフト量Ｂは、予め主制御部１１０との間で取り決められていないランダムに変動する値である。この場合、ビット列変換部６２４は、誤り検査値（Ｐ−Ｎ）のビット列に、当該ビット列のビット幅で規定されるローテート数の取り得る範囲の個数分だけビットローテート演算を行う。そして、ビット列変換部６２４は、ビット列が変換された、当該ローテート数の取り得る範囲の個数分の誤り検査値（Ｐ−Ｎ）を、検査部６１０へそれぞれ出力する。
【０２５２】
決定部６２３、格納部６２２、生成部６２１、およびビット列変換部６２４の機能を実現する具体的な手段は、図４に示すサブＣＰＵ１２０ａの一部、サブＲＯＭ１２０ｂの一部、サブＲＡＭ１２０ｃの一部等から構成することができる。
【０２５３】
検査部６１０は、受信部６００から出力された誤り検査値と、検査値生成部６２０のビット列変換部６２４から出力された誤り検査値とを照合する誤り検査処理を行う機能を有するものである。誤り検査処理では、受信部６００から出力された誤り検査値と、ビット列変換部６２４から出力された誤り検査値とを比較し、両者が一致する場合は、検査結果は正常であると判断され、両者が一致しない場合は、検査結果は正常でないと判断される。
【０２５４】
なお、変換方式Ｂがビット列変換部６２４に設定された際、検査部６１０には、ビット列変換部６２４からローテート数の取り得る範囲の個数分だけ誤り検査値が出力される。この場合、検査部６１０は、ビット列変換部６２４から出力された全ての誤り検査値を、受信部６００から出力された誤り検査値と比較する。そして、検査部６１０は、ビット列変換部６２４から出力された何れかの誤り検査値が、受信部６００から出力された誤り検査値と一致する場合は、検査結果は正常と判断し、何れの誤り検査値も、受信部６００から出力された誤り検査値と一致しない場合は、検査結果は正常でないと判断される。
【０２５５】
検査結果が正常と判断された場合、検査部６１０は、今回受信した誤り検査値（Ｐ−Ｎ）が付加された制御コマンド（Ｐ）、および今回の誤り検査値（Ｐ−Ｎ）の生成元である制御コマンド（Ｐ−Ｎ）の正当性を認証し、主制御部１１０の正当性を認証することができたと判断する。その後、受信した制御コマンド（Ｐ）は、サブＲＡＭ１２０ｃの受信データ用記憶領域へ出力され、制御コマンド（Ｐ）に応じた処理が行われる。
【０２５６】
また、検査部６１０は、検査結果が正常と判断された場合、変換方式Ｂが設定されて、ビット列変換部６２４から検査部６１０へ出力された複数（ローテート数の取り得る範囲の個数）の誤り検査値（Ｐ−Ｎ）のうち、受信部６００から出力された誤り検査値と一致した誤り検査値（Ｐ−Ｎ）を決定部６２３へ出力する。そして、決定部６２３は、シフト量Ａを更新するタイミングであれば、当該一致した誤り検査値（Ｐ−Ｎ）に基づいてシフト量Ａを更新する。
【０２５７】
一方、検査結果が正常と判断されなかった場合は、検査部６１０は、不正行為や通信エラーなどが発生したため主制御部１１０の正当性を認証することができなかったと判断する。そして、検査部６１０は、不正行為等が発生したおそれがあることを報知する報知信号を出力する。なお、検査部６１０の機能を実現する具体的な手段は、図４に示すサブＣＰＵ１２０ａの一部、サブＲＯＭ１２０ｂの一部、サブＲＡＭ１２０ｃの一部等から構成することができる。
【０２５８】
［制御コマンドの説明］
これより、本発明の実施形態に係る遊技機１の主制御部１１０から演出制御部１２０に対して送信される制御コマンドの種別について説明する。
図９は、本実施形態に係る遊技機１を構成する主制御部１１０から演出制御部１２０へ送信される制御コマンドの種別を示す図である。なお、図９に示された制御コマンドは一例であり、本発明に係る制御コマンドはこれに限定されるものではない。
【０２５９】
主制御部１１０から演出制御部１２０へ送信される制御コマンドは、１コマンドが２バイトのデータで構成されており、制御コマンドの分類を識別するための１バイトの「ＭＯＤＥ」の情報と、各制御コマンドの詳細な制御内容を示す１バイトの「ＤＡＴＡ」の情報とから構成されている。「ＭＯＤＥ」の情報と「ＤＡＴＡ」の情報は、上記のようにメインＲＯＭ１１０ｂに予め記憶されている。
【０２６０】
主制御部１１０では、制御コマンドの送信タイミングとなると、メインＲＯＭ１１０ｂから読み出された「ＭＯＤＥ」の情報と「ＤＡＴＡ」の情報とによって制御コマンドが生成された後、メインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。送信データ用記憶領域にセットされた制御コマンドは、主制御部１１０のコマンド送信処理により、誤り検査値が付加され、誤り検査値付きの制御コマンドとして演出制御部１２０に送信されることになる。以下の説明において、それぞれの制御コマンドは、このようにして主制御部１１０から演出制御部１２０に送信されるものとし、それぞれの制御コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされた後の処理については説明を省略する。また、以下の説明において、「制御コマンドを送信する」との表現には、制御コマンドに誤り検査値を付加して送信することが含まれものとする。
【０２６１】
「演出図柄指定コマンド」は、停止表示される特別図柄の種別を示すものであり、「ＭＯＤＥ」の情報が「Ｅ０Ｈ」で設定され、特別図柄の種別に合わせて「ＤＡＴＡ」の情報が設定されている。なお、特別図柄の種別が結果的に大当たりの種別や遊技状態を決定するものであるから、演出図柄指定コマンドは、大当たりの種別や、遊技状態を示すものともいえる。
この演出図柄指定コマンドは、各種の特別図柄が決定され、特別図柄の変動表示が開始されるときに、決定された特別図柄に対応する演出図柄指定コマンドが演出制御部１２０に送信される。具体的には、大当たりの抽選結果を判定し特別図柄各種の特別図柄が決定され特別図柄の変動表示が開始されるときに、決定された特別図柄に対応する演出図柄指定コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。
なお、演出図柄指定コマンド等と関連する大当たりの抽選に関する処理については後述する。
【０２６２】
ここで、演出図柄指定コマンドのうち、「ＤＡＴＡ」の情報が「００Ｈ」で設定される「ハズレ演出図柄指定コマンド」は、抽選結果がハズレの場合に、ハズレの結果を停止表示させるための制御コマンドである。すなわち、ハズレ演出図柄指定コマンド、抽選結果がハズレの場合に、主制御部１１０から演出制御部１２０に必ず送信される制御コマンドである。以下、ハズレ演出図柄指定コマンドを、ハズレの際の処理を実行させるコマンドとして、「ハズレコマンド」ともいう。
【０２６３】
「第１特別図柄記憶指定コマンド」は、第１特別図柄保留数（Ｕ１）記憶領域に記憶されている保留記憶数を示すものであり、「ＭＯＤＥ」の情報が「Ｅ１Ｈ」で設定され、保留記憶数に合わせて「ＤＡＴＡ」の情報が設定されている。
この第１特別図柄記憶指定コマンドは、第１特別図柄保留数（Ｕ１）記憶領域に記憶されている保留記憶数が切り替わるときに、保留記憶数に対応する第１特別図柄記憶指定コマンドが演出制御部１２０に送信される。具体的には、第１始動口１４への入球や大当たりの抽選結果の判定に際し第１特別図柄保留数（Ｕ１）記憶領域に記憶されている値が増減したときに、増減後の保留記憶数に対応する第１特別図柄記憶指定コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。
【０２６４】
「第２特別図柄記憶指定コマンド」は、第２特別図柄保留数（Ｕ２）記憶領域に記憶されている保留記憶数を示すものであり、「ＭＯＤＥ」の情報が「Ｅ２Ｈ」で設定され、保留記憶数に合わせて「ＤＡＴＡ」の情報が設定されている。
この第２特別図柄記憶指定コマンドは、第２特別図柄保留数（Ｕ２）記憶領域に記憶されている保留記憶数が切り替わるときに、保留記憶数に対応する第２特別図柄記憶指定コマンドが演出制御部１２０に送信される。具体的には、第２始動口１５への入球や大当たりの抽選結果の判定に際し第２特別図柄保留数（Ｕ２）記憶領域に記憶されている値が増減したときに、増減後の保留記憶数に対応する第２特別図柄記憶指定コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。
なお、本実施形態では、「第１特別図柄記憶指定コマンド」と「第２特別図柄記憶指定コマンド」とをまとめて「特別図柄記憶指定コマンド」ともいう。
【０２６５】
「図柄確定コマンド」は、特別図柄が停止表示されていることを示すものであり、「ＭＯＤＥ」の情報が「Ｅ３Ｈ」で設定され、「ＤＡＴＡ」の情報が「００Ｈ」に設定されている。
この図柄確定コマンドは、特別図柄が停止表示されているときに演出制御部１２０に送信される。具体的には、大当たりの抽選結果を判定し特別図柄の変動時間が経過した後に、特別図柄を第１特別図柄表示装置２０または第２特別図柄表示装置２１に停止表示させるときに、図柄確定コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。
【０２６６】
「電源投入時指定コマンド」は、遊技機１の電源が投入されたことを示すものであり、「ＭＯＤＥ」の情報が「Ｅ４Ｈ」で設定され、「ＤＡＴＡ」の情報が「００Ｈ」に設定されている。
この電源投入時指定コマンドは、遊技機１の電源が投入されたときに演出制御部１２０に送信される。遊技機１の電源が投入され主制御部１１０の初期化処理が行われる際に、電源遮断時（以下、「電断時」という）に生成したメインＲＡＭ１１０ｃのバックアップ情報が有効でない場合は、メインＲＡＭ１１０ｃの作業領域がクリアされ、新たに作業領域の設定が行われる。その後、電源投入時指定コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。
なお、電源投入時指定コマンド等と関連する初期化処理については後述する。
【０２６７】
「ＲＡＭクリア指定コマンド」は、メインＲＡＭ１１０ｃに記憶された情報がクリアされたことを示すものであり、「ＭＯＤＥ」の情報が「Ｅ４Ｈ」で設定され、「ＤＡＴＡ」の情報が「０１Ｈ」に設定されている。
遊技機１の裏側には図示しないＲＡＭクリアボタンが設けられており、ＲＡＭクリアボタンを押下しながら遊技機１の電源を投入すると、主制御部１１０にシステムリセットが発生し初期化処理が行われる。そして、メインＲＡＭ１１０ｃの作業領域がクリアされ新たに作業領域の設定が行われ電源投入時指定コマンドを送信した後に、ＲＡＭクリア指定コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。
【０２６８】
「電源復旧指定コマンド」は、遊技機１の電源が投入されて、正常に復旧したことを示すものであり、「ＭＯＤＥ」の情報が「Ｅ４Ｈ」で設定され、電断時の遊技状態別に合わせて「ＤＡＴＡ」の情報が設定されている。
この電源復旧指定コマンドは、遊技機１の電源が投入されて、正常に復旧したときに演出制御部１２０に送信される。具体的には、遊技機１の電源が投入され初期化処理が行われる際に、電断時に生成したメインＲＡＭ１１０ｃのバックアップ情報が有効である場合は、バックアップ情報が示す遊技状態に応じた電源復旧指定コマンドを生成し、生成した電源復旧指定コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。
【０２６９】
なお、電源投入時に、電源投入時指定コマンド、ＲＡＭクリア指定コマンド、電源復旧指定コマンドのいずれか少なくとも１つが主制御部１１０から演出制御部１２０へ送信される。すなわち、「ＭＯＤＥ」の情報が「Ｅ４Ｈ」で設定される上記の制御コマンド群は、電源投入時の処理を実行させるコマンドである。以下、「ＭＯＤＥ」の情報が「Ｅ４Ｈ」で設定される上記の制御コマンド群を、「電源投入コマンド」ともいう。
【０２７０】
「デモ指定コマンド」は、第１特別図柄表示装置２０または第２特別図柄表示装置２１が作動していないことを示すものであり、「ＭＯＤＥ」の情報が「Ｅ５Ｈ」で設定され、「ＤＡＴＡ」の情報が「００Ｈ」に設定されている。
このデモ指定コマンドは、第１特別図柄表示装置２０または第２特別図柄表示装置２１の特別図柄の保留記憶がなく、遊技者による操作がない非遊技状態が所定の時間経過したときに、演出制御部１２０に送信される。具体的には、大当たりの抽選、特別電動役物、遊技状態の制御を行うに際し、第１特別図柄保留数（Ｕ１）記憶領域または第２特別図柄保留数（Ｕ２）記憶領域のいずれの記憶領域にも１以上のデータがセットされていない状態が所定の時間継続したときに、デモ指定コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。
【０２７１】
なお、デモ指定コマンドは、第１特別図柄表示装置２０または第２特別図柄表示装置２１の特別図柄の保留記憶がないとき直ちに送信するようにしてもよい。この場合、演出制御部１２０は、デモ指定コマンドを受信した後、他の制御コマンドを所定時間受信しなかった場合、すなわち非遊技状態が所定時間経過した場合にデモ演出を実行する。
【０２７２】
「第１特別図柄用変動パターン指定コマンド」は、第１特別図柄表示装置２０における特別図柄の変動時間（変動態様）を示すものであり、「ＭＯＤＥ」の情報が「Ｅ６Ｈ」で設定され、各種の変動パターンに合わせて「ＤＡＴＡ」の情報が設定されている。
この第１特別図柄用変動パターン指定コマンドは、第１特別図柄表示装置２０の特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第１特別図柄用変動パターン指定コマンドが演出制御部１２０に送信される。具体的には、大当たりの抽選結果を判定し特別図柄の変動パターンが決定され特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第１特別図柄用変動パターン指定コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。
【０２７３】
「第２特別図柄用変動パターン指定コマンド」は、第２特別図柄表示装置２１における特別図柄の変動時間（変動態様）を示すものであり、「ＭＯＤＥ」の情報が「Ｅ７Ｈ」で設定され、各種の変動パターンに合わせて「ＤＡＴＡ」の情報が設定されている。
この第２特別図柄用変動パターン指定コマンドは、第２特別図柄表示装置２１の特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第２特別図柄用変動パターン指定コマンドが演出制御部１２０に送信される。具体的には、大当たりの抽選結果を判定し特別図柄の変動パターンが決定され特別図柄の変動表示が開始されるときに、決定された特別図柄の変動パターンに対応する第２特別図柄用変動パターン指定コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。
なお、本実施形態では、「第１特別図柄用変動パターン指定コマンド」と「第２特別図柄用変動パターン指定コマンド」とをまとめて、「変動パターン指定コマンド」という。
【０２７４】
ここで、変動パターン指定コマンドのうち、「ＤＡＴＡ」の情報が「０１Ｈ」、「０２Ｈ」、「０３Ｈ」、「０４Ｈ」、「０５Ｈ」で設定される制御コマンド群は、リーチ演出を実行させる制御コマンドである。以下、「ＭＯＤＥ」の情報が「Ｅ６Ｈ」で設定され、かつ「ＤＡＴＡ」の情報が「０１Ｈ」〜「０５Ｈ」で設定される制御コマンド群を、「リーチコマンド」ともいう。
【０２７５】
「大入賞口開放指定コマンド」は、各種大当たりの種別に合わせた大当たりのラウンド数を示すものであり、「ＭＯＤＥ」の情報が「ＥＡＨ」で設定され、大当たりのラウンド数に合わせて「ＤＡＴＡ」の情報が設定されている。
この大入賞口開放指定コマンドは、大当たりラウンドが開始されるときに、開始されたラウンド数に対応する大入賞口開放指定コマンドが演出制御部１２０に送信される。具体的には、大当たり遊技処理において第１大入賞口開閉扉１６ｂ（または第２大入賞口開閉扉１７ｂ）を開放させるときに、開放させるときのラウンド数に対応する大入賞口開放指定コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。
なお、「ＭＯＤＥ」の情報が「ＥＡＨ」で設定されるコマンド群は、大当たり中の各ラウンドに対応する処理を実行させるコマンドである。以下、「ＭＯＤＥ」の情報が「ＥＡＨ」で設定されるコマンド群を、「大当たりコマンド」ともいう。
【０２７６】
「オープニング指定コマンド」は、各種の大当たりが開始することを示すものであり、「ＭＯＤＥ」の情報が「ＥＢＨ」で設定され、大当たりの種別に合わせて「ＤＡＴＡ」の情報が設定されている。
このオープニング指定コマンドは、各種の大当たりが開始するときに、大当たりの種別に対応するオープニング指定コマンドが演出制御部１２０に送信される。具体的には、大当たり遊技処理の開始のときに、大当たりの種別に対応するオープニング指定コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。
なお、「ＭＯＤＥ」の情報が「ＥＢＨ」で設定されるコマンド群は、大当たり状態の処理を開始させるコマンドである。以下、「ＭＯＤＥ」の情報が「ＥＢＨ」で設定されるコマンド群を、「大当たり開始コマンド」ともいう。
【０２７７】
「エンディング指定コマンド」は、各種の大当たりが終了したことを示すものであり、「ＭＯＤＥ」の情報が「ＥＣＨ」で設定され、大当たりの種別に合わせて「ＤＡＴＡ」の情報が設定されている。
このエンディング指定コマンドは、各種の大当たりが終了するときに、大当たりの種別に対応するエンディング指定コマンドが演出制御部１２０に送信される。具体的には、大当たり遊技終了処理の開始のときに、大当たりの種別に対応するエンディング指定コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。
なお、「ＭＯＤＥ」の情報が「ＥＣＨ」で設定されるコマンド群は、大当たり状態の処理を終了させるコマンドである。以下、「ＭＯＤＥ」の情報が「ＥＣＨ」で設定されるコマンド群を、「大当たり終了コマンド」ともいう。
【０２７８】
「遊技状態指定コマンド」は、遊技状態の内容を示すものであり、「ＭＯＤＥ」の情報が「ＥＤＨ」で設定され、遊技状態の内容に合わせて「ＤＡＴＡ」の情報が設定されている。
この遊技状態指定コマンドは、特別図柄の変動開始および変動終了時や大当り遊技の開始時および終了時に、遊技状態に対応する遊技状態指定コマンドが演出制御部１２０に送信される。具体的には、特別図柄の変動表示が開始されるとき、特別図柄を停止表示させるとき、高確率遊技フラグ、高確率遊技回数、時短遊技フラグおよび時短回数（Ｊ）をクリアしたとき、高確率遊技フラグ、高確率遊技回数、時短遊技フラグおよび時短回数（Ｊ）の設定を行ったときに、現在の遊技状態に対応する遊技状態指定コマンドがメインＲＡＭ１１０ｃの送信データ用記憶領域にセットされる。
【０２７９】
［主制御部の制御処理］
これより、本発明の実施形態に係る遊技機１の主制御部１１０の制御処理について説明する。まず、主制御部１１０のメイン処理について説明する。
図１０は、本実施形態に係る主制御部１１０によるメイン処理を示すフローチャートである。
【０２８０】
遊技機１に電源が投入され、電源部１７０により電源が供給されると、主制御部１１０にシステムリセットが発生し、メインＣＰＵ１１０ａは、初期化処理（図１０のステップＳ１〜ステップＳ１７までの処理）および乱数値更新処理（図１０のステップＳ２０およびステップＳ３０の処理）を行う。
【０２８１】
ステップＳ１において、メインＣＰＵ１１０ａは、主制御部１１０の初期化処理の前提としてブート処理を行う。このブート処理において、メインＣＰＵ１１０ａは、自身の自己診断処理や、内蔵回路や周辺回路等の初期化および初期値の設定を行う。なお、ブート処理の詳細については後述する。
ステップＳ２において、メインＣＰＵ１１０ａは、メインＲＡＭ１１０ｃへのアクセスを許可に設定する。
ステップＳ３において、メインＣＰＵ１１０ａは、ＲＡＭクリアスイッチがオンとなっているか判定し、ＲＡＭクリアスイッチがオンと判定された場合、ＲＡＭクリアを行うためステップＳ１０に処理を移す。一方、ＲＡＭクリアスイッチがオンと判定されなかった場合には、ステップＳ４に処理を移す。
【０２８２】
ステップＳ４において、メインＣＰＵ１１０ａは、電源投入時のメインＲＡＭ１１０ｃの所定の記憶領域におけるチェックサムを生成する。
ステップＳ５において、メインＣＰＵ１１０ａは、生成したチェックサムと、電断時に生成したメインＲＡＭ１１０ｃの所定の記憶領域におけるチェックサムとを比較する。ここで、一致していれば正常と判定し、ステップＳ６に処理を移し、一致していなければエラーと判定し、ステップＳ１０に処理を移す。
【０２８３】
ステップＳ６において、メインＣＰＵ１１０ａは、演出制御部１２０をはじめとした周辺制御部３００との間で、起動後の動作の開始タイミングを調整する。具体的には、周辺制御部３００がすべて起動し安定状態となってから演出処理等をほぼ同じタイミングで開始できるように、一定時間だけ待機する。
ステップＳ７において、メインＣＰＵ１１０ａは、電断からの復旧に際して初期値を必要とするメインＲＡＭ１１０ｃの作業領域に初期値を設定し、バックアップが有効である場合のＲＡＭの設定処理を行う。
【０２８４】
ステップＳ８において、メインＣＰＵ１１０ａは、電断時の遊技状態に復旧すべく、電断時に生成したメインＲＡＭ１１０ｃのバックアップ情報を読み込む。具体的には、バックアップされているメインＲＡＭ１１０ｃの遊技状態記憶領域から遊技状態の情報を読み込む。
ステップＳ９において、メインＣＰＵ１１０ａは、読み込んだ遊技状態の情報に基づいて電源復旧指定コマンドを決定し、決定した電源復旧指定コマンドをメインＲＡＭ１１０ｃの送信データ用記憶領域にセットする。
【０２８５】
ステップＳ１０において、メインＣＰＵ１１０ａは、上記ステップＳ６と同様に周辺制御部３００との間でのタイミング調整を行う。
ステップＳ１１において、メインＣＰＵ１１０ａは、メインＲＡＭ１１０ｃの作業領域をクリアする。
ステップＳ１２において、メインＣＰＵ１１０ａは、各種乱数値の初期値の設定をはじめとする、遊技機１の初期化に際して初期値を必要とするメインＲＡＭ１１０ｃの作業領域に初期値を設定し、バックアップが有効でない場合のメインＲＡＭ１１０ｃの設定処理を行う。
【０２８６】
ステップＳ１３において、メインＣＰＵ１１０ａは、電源投入時指定コマンドを生成し、生成した電源投入時指定コマンドをメインＲＡＭ１１０ｃの送信データ用記憶領域にセットする。
ステップＳ１４において、メインＣＰＵ１１０ａは、送信データ用記憶領域にセットされている制御コマンドを演出制御部１２０に送信するコマンド送信処理を行う。すなわち、電源投入時指定コマンドを演出制御部１２０に送信する。なお、ステップＳ１４およびステップＳ１６のコマンド送信処理は、変換方式設定処理、検査値生成処理、ビット列変換処理、シフト量設定処理、および検査値付加処理を伴う。更に、ステップＳ１４およびステップＳ１６のコマンド送信処理は、固有情報を格納回路５２２へ初期設定値として設定する処理を伴う。コマンド送信処理の詳細については後述する。
【０２８７】
ステップＳ１５において、メインＣＰＵ１１０ａは、ＲＡＭクリア指定コマンドを生成し、生成したＲＡＭクリア指定コマンドをメインＲＡＭ１１０ｃの送信データ用記憶領域にセットする。
ステップＳ１６において、メインＣＰＵ１１０ａは、メインＲＡＭ１１０ｃの送信データ用記憶領域にセットされている制御コマンドを演出制御部１２０に送信するコマンド送信処理を行う。すなわち、電源復旧指定コマンドまたはＲＡＭクリア指定コマンドのいずれかの制御コマンドを演出制御部１２０に送信する。
ステップＳ１７において、メインＣＰＵ１１０ａは、割込許可の設定をするとともに、タイマ割込プログラムの実行周期（α、例えば４ミリ秒）を設定する。
【０２８８】
なお、ステップＳ１４およびステップＳ１６のコマンド送信処理は、ステップＳ１７での割込許可後に行われるタイマ割込処理の中で行ってもよい。このとき、各制御コマンドの送信順番が前後しないよう予め取り決めておく。
【０２８９】
ステップＳ２０において、メインＣＰＵ１１０ａは、特別図柄の変動態様（変動時間）を決定するためのリーチ判定用乱数値および特図変動用乱数値を更新する演出用乱数値更新処理を行う。
ステップＳ３０において、メインＣＰＵ１１０ａは、特別図柄判定用初期乱数値、大当たり図柄用初期乱数値、小当たり図柄用初期値乱数値、普通図柄判定用初期乱数値を更新する初期乱数値更新処理を行う。その後、所定の割込処理が行われるまで、ステップＳ２０とステップＳ３０との処理を繰り返し行う。
【０２９０】
次に、主制御部１１０の割込処理について説明する。
図１１は、本実施形態に係る主制御部１１０による割込処理を示すフローチャートである。
メインＣＰＵ１１０ａは、主制御部１１０に設けられたクロックパルス発生回路から出力されるクロック信号に基づいて、所定の周期（α）毎に、主制御部１１０のタイマ割込処理を実行する。
【０２９１】
まず、ステップＳ１００において、メインＣＰＵ１１０ａは、メインＣＰＵ１１０ａのレジスタに記憶されている情報をスタック領域に退避させる。
【０２９２】
ステップＳ１１０において、メインＣＰＵ１１０ａは、特別図柄時間カウンタの更新処理、特別電動役物の開放時間等などの特別遊技タイマカウンタの更新処理、普通図柄時間カウンタの更新処理、普電開放時間カウンタの更新処理等の各種タイマカウンタを更新する時間制御処理を行う。具体的には、特別図柄時間カウンタ、特別遊技タイマカウンタ、普通図柄時間カウンタ、普電開放時間カウンタから１を減算する処理を行う。
【０２９３】
ステップＳ１２０において、メインＣＰＵ１１０ａは、特別図柄判定用乱数値、大当たり図柄用乱数値、小当たり図柄用乱数値、普通図柄判定用乱数値の乱数更新処理を行う。
具体的には、それぞれの乱数値および乱数カウンタに１を加算して更新する。なお、加算した乱数カウンタが乱数範囲の最大値を超えた場合（乱数カウンタが１周した場合）には、乱数カウンタを０に戻し、その時の初期乱数値からそれぞれの乱数値を新たに更新する。
【０２９４】
ステップＳ１３０において、メインＣＰＵ１１０ａは、ステップＳ３０と同様に、特別図柄判定用初期乱数値、大当たり図柄用初期乱数値、小当たり図柄用初期値乱数値、普通図柄判定用初期乱数値を更新する初期乱数値更新処理を行う。
【０２９５】
ステップＳ２００において、メインＣＰＵ１１０ａは、入力制御処理を行う。この処理において、メインＣＰＵ１１０ａは、一般入賞口検出スイッチ１２ａ、第１大入賞口検出スイッチ１６ａ、第２大入賞口検出スイッチ１７ａ、第１始動口検出スイッチ１４ａ、第２始動口検出スイッチ１５ａ、ゲート検出スイッチ１３ａの各スイッチに入力があったか否か判定する入力処理を行う。
【０２９６】
具体的には、一般入賞口検出スイッチ１２ａ、第１大入賞口検出スイッチ１６ａ、第２大入賞口検出スイッチ１７ａ、第１始動口検出スイッチ１４ａ、第２始動口検出スイッチ１５ａからの各種検出信号を入力した場合には、ぞれぞれの入賞口毎に設けられた賞球のために用いる賞球カウンタに所定のデータを加算して更新する。
【０２９７】
更に、第１始動口検出スイッチ１４ａから検出信号を入力した場合には、第１特別図柄保留数（Ｕ１）記憶領域にセットされているデータが４未満であれば、第１特別図柄保留数（Ｕ１）記憶領域に１を加算し、特別図柄判定用乱数値、大当たり図柄用乱数値、小当たり図柄用乱数値、リーチ判定用乱数値および特図変動用乱数値を取得して、取得した各種乱数値を第１特別図柄乱数値記憶領域にある所定の記憶部（第０記憶部〜第４記憶部）に記憶する。
【０２９８】
同様に、第２始動口検出スイッチ１５ａから検出信号を入力した場合には、第２特別図柄保留数（Ｕ２）記憶領域にセットされているデータが４未満であれば、第２特別図柄保留数（Ｕ２）記憶領域に１を加算し、特別図柄判定用乱数値、大当たり図柄用乱数値、小当たり図柄用乱数値、リーチ判定用乱数値および特図変動用乱数値を取得して、取得した各種乱数値を第２特別図柄乱数値記憶領域にある所定の記憶部（第０記憶部〜第４記憶部）に記憶する。
【０２９９】
また、ゲート検出スイッチ１３ａから検出信号を入力した場合には、普通図柄保留数（Ｇ）記憶領域にセットされているデータが４未満であれば、普通図柄保留数（Ｇ）記憶領域に１を加算し、普通図柄判定用乱数値を取得して、取得した普通図柄判定用乱数値を普通図柄保留記憶領域にある所定の記憶部（第０記憶部〜第４記憶部）に記憶する。
【０３００】
更に、第１大入賞口検出スイッチ１６ａまたは第２大入賞口検出スイッチ１７ａからの検出信号を入力した場合には、第１大入賞口１６または第２大入賞口１７に入賞した遊技球を計数するための大入賞口入球数（Ｃ）記憶領域に１を加算して更新する。
【０３０１】
ステップＳ３００において、メインＣＰＵ１１０ａは、上記ステップＳ２００での入力制御処理に基づいて、大当たりの抽選、特別電動役物、遊技状態の制御を行うための特別図柄・特別電動役物制御処理（以下、「特図特電制御処理」という）を行う。特図特電制御処理の詳細については、図１２を用いて後述する。
【０３０２】
ステップＳ４００において、メインＣＰＵ１１０ａは、普通図柄の抽選、普通電動役物の制御を行うための普通図柄・普通電動役物制御処理（以下、「普図普電制御処理」という）を行う。
具体的には、まず普通図柄保留数（Ｇ）記憶領域に１以上のデータがセットされているか否かを判定し、普通図柄保留数（Ｇ）記憶領域に１以上のデータがセットされていなければ、今回の普図普電制御処理を終了する。
【０３０３】
普通図柄保留数（Ｇ）記憶領域に１以上のデータがセットされていれば、普通図柄保留数（Ｇ）記憶領域に記憶されている値から１を減算した後、普通図柄保留記憶領域にある第１記憶部〜第４記憶部に記憶された普通図柄判定用乱数値を１つ前の記憶部にシフトさせる。このとき、既に第０記憶部に書き込まれていた普通図柄判定用乱数値は上書きされて消去されることとなる。
そして、当たり判定テーブルを参照し、普通図柄保留記憶領域の第０記憶部に記憶された普通図柄判定用乱数値が「当たり」に対応する乱数値であるかどうかの判定する処理を行う。その後、普通図柄表示装置２２において普通図柄の変動表示を行って、普通図柄の変動時間が経過すると普通図柄の抽選の結果に対応する普通図柄の停止表示を行う。そして、参照した普通図柄判定用乱数値が「当たり」のものであれば、始動口開閉ソレノイド１５ｃを駆動させ、第２始動口１５を所定の開放時間、第２の態様に制御する。
ここで、非時短遊技状態であれば、普通図柄の変動時間を２９秒に設定し、「当たり」であると第２始動口１５を０．２秒間、第２の態様に制御する。これに対して、時短遊技状態であれば、普通図柄の変動時間を３秒に設定し、「当たり」であると第２始動口１５を３．５秒間、第２の態様に制御する。
【０３０４】
ステップＳ５００において、メインＣＰＵ１１０ａは、払出制御処理を行う。この払出制御処理において、メインＣＰＵ１１０ａは、ぞれぞれの賞球カウンタを参照し、各種入賞口に対応する払出個数指定コマンドを生成して、生成した払出個数指定コマンドを払出制御部１３０に送信する。
【０３０５】
ステップＳ６００において、メインＣＰＵ１１０ａは、外部情報データ、始動口開閉ソレノイドデータ、第１大入賞口開閉ソレノイドデータ、第２大入賞口開閉ソレノイドデータ、特別図柄表示装置データ、普通図柄表示装置データ、記憶数指定コマンドのデータ作成処理を行う。
【０３０６】
ステップＳ７００において、メインＣＰＵ１１０ａは、出力制御処理を行う。この処理において、ステップＳ６００で作成した外部情報データ、始動口開閉ソレノイドデータ、第１大入賞口開閉ソレノイドデータ、第２大入賞口開閉ソレノイドデータの信号を出力させるポート出力処理を行う。
また、第１特別図柄表示装置２０、第２特別図柄表示装置２１および普通図柄表示装置２２の各ＬＥＤを点灯させるために、上記Ｓ６００で作成した特別図柄表示装置データと普通図柄表示装置データとを出力する表示装置出力処理を行う。
【０３０７】
ステップＳ７１０において、メインＣＰＵ１１０ａは、メインＲＡＭ１１０ｃの送信データ用記憶領域にセットされている制御コマンドを演出制御部１２０へ送信するコマンド送信処理を行う。なお、ステップＳ７１０のコマンド送信処理においても、上記と同様に、変換方式設定処理、検査値生成処理、ビット列変換処理、シフト量設定処理、および検査値付加処理を伴うが、詳細については後述する。
【０３０８】
ステップＳ８００において、メインＣＰＵ１１０ａは、ステップＳ１００で退避した情報をメインＣＰＵ１１０ａのレジスタに復帰させる。
【０３０９】
次に、主制御部１１０の特図特電制御処理を説明する。
図１２は、本実施形態に係る主制御部１１０による特図特電制御処理を示すフローチャートである。
【０３１０】
ステップＳ３０１において、メインＣＰＵ１１０ａは、特図特電処理データの値を読み込む。この「特図特電処理データ」は、特図特電制御処理の各サブルーチンが記憶された記憶領域のアドレスにそれぞれ割り当てられた値であり、特図特電処理データを参照することで、どのサブルーチンを処理するかを識別することができる。そして、特図特電処理データは、後述するように特図特電制御処理の各サブルーチンの中で必要に応じてセットされていき、その遊技において必要なサブルーチンが適宜処理されていくことになる。
【０３１１】
ステップＳ３０２において、メインＣＰＵ１１０ａは、読み込んだ特図特電処理データから分岐アドレスを参照し、特図特電処理データ＝０であれば特別図柄記憶判定処理（ステップＳ３１０）に処理を移し、特図特電処理データ＝１であれば特別図柄変動処理（ステップＳ３２０）に処理を移し、特図特電処理データ＝２であれば特別図柄停止処理（ステップＳ３３０）に処理を移し、特図特電処理データ＝３であれば大当たり遊技処理（ステップＳ３４０）に処理を移し、特図特電処理データ＝４であれば大当たり遊技終了処理（ステップＳ３５０）に処理を移し、特図特電処理データ＝５であれば小当たり遊技処理（ステップＳ３６０）に処理を移す。
【０３１２】
ステップＳ３１０の特別図柄記憶判定処理においては、メインＣＰＵ１１０ａは、大当たり判定処理、停止表示する特別図柄の決定をする特別図柄決定処理、特別図柄の変動時間を決定する変動時間決定処理等を行う。ここで、図１３を用いて、特別図柄記憶判定処理の具体的な内容を説明する。
【０３１３】
図１３は、本実施形態に係る主制御部１１０による特別図柄記憶判定処理におけるフローチャートである。
【０３１４】
ステップＳ３１１において、メインＣＰＵ１１０ａは、第１特別図柄保留数（Ｕ１）記憶領域または第２特別図柄保留数（Ｕ２）記憶領域に１以上のデータがセットされているか否かを判定する。
そして、第１特別図柄保留数（Ｕ１）記憶領域または第２特別図柄保留数（Ｕ２）記憶領域のいずれの記憶領域にも１以上のデータがセットされていなければ、特図特電処理データ＝０を保持したまま、今回の特別図柄変動処理を終了する。
一方、第１特別図柄保留数（Ｕ１）記憶領域または第２特別図柄保留数（Ｕ２）記憶領域に１以上のデータがセットされていれば、ステップＳ３１２に処理を移す。
【０３１５】
ステップＳ３１２において、メインＣＰＵ１１０ａは、大当たり判定処理を行う。
具体的には、第２特別図柄保留数（Ｕ２）記憶領域に１以上のデータがセットされている場合には、第２特別図柄保留数（Ｕ２）記憶領域に記憶されている値から１を減算した後、第２特別図柄乱数値記憶領域にある第１記憶部〜第４記憶部に記憶された各種乱数値を１つ前の記憶部にシフトさせる。このとき、既に第０記憶部に書き込まれていた各種乱数値は上書きされて消去されることとなる。そして、大当たり判定テーブルを参照して、第２特別図柄乱数値記憶領域の第０記憶部に記憶された特別図柄判定用乱数値が「大当たり」に対応する乱数値であるか、「小当たり」に対応する乱数値であるかの判定を行う。
【０３１６】
また、第２特別図柄保留数（Ｕ２）記憶領域に１以上のデータがセットされておらず、第１特別図柄保留数（Ｕ１）記憶領域に１以上のデータがセットされている場合には、第１特別図柄保留数（Ｕ１）記憶領域に記憶されている値から１を減算した後、第１特別図柄乱数値記憶領域にある第１記憶部〜第４記憶部に記憶された各種乱数値を１つ前の記憶部にシフトさせる。このときにも、既に第０記憶部に書き込まれていた各種乱数値は上書きされて消去されることとなる。そして、大当たり判定テーブルを参照して、第１特別図柄乱数値記憶領域の第０記憶部に記憶された特別図柄判定用乱数値が「大当たり」に対応する乱数値であるか、「小当たり」に対応する乱数値であるかの判定を行う。
【０３１７】
本実施形態では、第１特別図柄乱数値記憶領域よりも第２特別図柄乱数値記憶領域に記憶された乱数値が優先してシフト（消化）されることになる。しかしながら、始動口に入賞した順序で、第１特別図柄記憶領域または第２特別図柄記憶領域をシフトさせてもよいし、第１特別図柄記憶領域を第２特別図柄記憶領域よりも優先させてシフトさせてもよい。
【０３１８】
ステップＳ３１３において、メインＣＰＵ１１０ａは、停止表示する特別図柄の種類を決定するための特別図柄決定処理を行う。
この特別図柄決定処理では、上記大当たり判定処理（ステップＳ３１２）において「大当たり」と判定された場合には、図柄決定テーブルを参照して、第１特別図柄乱数値記憶領域の第０記憶部に記憶された大当たり図柄用乱数値に基づいて大当たり図柄（特別図柄１〜特別図柄６）を決定する。また、上記大当たり判定処理（ステップＳ３１２）において「小当たり」と判定された場合には、図柄決定テーブルを参照して、第１特別図柄乱数値記憶領域の第０記憶部に記憶された小当たり図柄用乱数値に基づいて小当たり図柄（特別図柄Ａ、特別図柄Ｂ）を決定する。また、上記大当たり判定処理（ステップＳ３１２）において「ハズレ」と判定された場合には、図柄決定テーブルを参照して、ハズレ図柄（特別図柄０）を決定する。
そして、決定した特別図柄に対応する停止図柄データを停止図柄データ記憶領域に記憶する。
【０３１９】
ステップＳ３１４において、メインＣＰＵ１１０ａは、特別図柄の変動時間決定処理を行う。
具体的には、変動パターン決定テーブルを参照して、第１特別図柄乱数値記憶領域の第０記憶部に記憶されたリーチ判定用乱数値および特図変動用乱数値に基づいて、特別図柄の変動パターンを決定する。その後、決定した特別図柄の変動パターンに対応する特別図柄の変動時間を決定する。そして、決定した特別図柄の変動時間に対応するカウンタを特別図柄時間カウンタにセットする処理を行う。
【０３２０】
ステップＳ３１５において、メインＣＰＵ１１０ａは、第１特別図柄表示装置２０または第２特別図柄表示装置２１に特別図柄の変動表示（ＬＥＤの点滅）を行わせるための変動表示データを所定の処理領域にセットする。これにより、所定の処理領域に変動表示データがセットされていると、上記ステップＳ６００でＬＥＤの点灯または消灯のデータが適宜作成され、作成されたデータがステップＳ７００において出力されることで、第１特別図柄表示装置２０または第２特別図柄表示装置２１の変動表示が行われる。
更に、メインＣＰＵ１１０ａは、特別図柄の変動表示が開始されるときに、上記ステップＳ３１４で決定された特別図柄の変動パターンに対応する特別図柄の変動パターン指定コマンド（第１特別図柄用変動パターン指定コマンドまたは第２特別図柄用変動パターン指定コマンド）をメインＲＡＭ１１０ｃの送信データ用記憶領域にセットする。
【０３２１】
ステップＳ３１６において、メインＣＰＵ１１０ａは、特図特電処理データ＝０から特図特電処理データ＝１にセットして、特別図柄変動処理のサブルーチンに移す準備を行い、特別図柄記憶判定処理を終了する。
【０３２２】
再び、図１２に示す特図特電制御処理について説明を戻すことにする。
ステップＳ３２０の特別図柄変動処理においては、メインＣＰＵ１１０ａは、特別図柄の変動時間が経過したか否かを判定する処理を行う。
具体的には、ステップＳ３１４で決定された特別図柄の変動時間が経過したか（特別図柄時間カウンタ＝０）否かを判定し、特別図柄の変動時間が経過していないと判定した場合には、特図特電処理データ＝１を保持したまま、今回の特別図柄変動処理を終了する。なお、上記ステップＳ３１４でセットされた特別図柄の変動時間のカウンタは、上記ステップＳ１１０において減算処理されていく。
【０３２３】
特別図柄の変動時間が経過したと判定すれば、上記ステップＳ３１３で決定された特別図柄を第１特別図柄表示装置２０または第２特別図柄表示装置２１に停止表示させる。これにより、第１特別図柄表示装置２０または第２特別図柄表示装置２１に特別図柄が停止表示され、遊技者に大当たりの判定結果が報知されることとなる。
また、時短回数（Ｊ）＞０のときには時短回数（Ｊ）カウンタから１を減算して更新し、時短回数（Ｊ）＝０となれば、時短遊技フラグをクリアし、高確率遊技回数（Ｘ）＞０のときには高確率遊技回数（Ｘ）カウンタから１を減算して更新し、高確率遊技回数（Ｘ）＝０となれば、高確率遊技フラグをクリアする。
最後に、特図特電処理データ＝１から特図特電処理データ＝２にセットして、特別図柄停止処理のサブルーチンに移す準備を行い、特別図柄変動処理を終了する。
【０３２４】
ステップＳ３３０の特別図柄停止処理においては、メインＣＰＵ１１０ａは、停止表示された特別図柄が「大当たり図柄」であるか、「小当たり図柄」であるか、「ハズレ図柄」であるかを判定する処理を行う。
そして、大当たり図柄と判定された場合には、遊技状態記憶領域に記憶されているデータを参照し、現在の遊技状態を示すデータ（００Ｈ〜０３Ｈ）を遊技状態バッファにセットする。その後に、遊技状態記憶領域（高確率遊技フラグ記憶領域等および時短遊技フラグ記憶領域）に記憶されているデータ（高確率遊技フラグと時短遊技フラグ）、高確率遊技回数（Ｘ）カウンタ、時短回数（Ｊ）カウンタをクリアする。更に、特図特電処理データ＝２から特図特電処理データ＝３にセットして、大当たり遊技処理のサブルーチンに移す準備を行い、特別図柄停止処理を終了する。
【０３２５】
また、小当たり図柄と判定された場合には、遊技状態記憶領域に記憶されているデータはクリアせずに、特図特電処理データ＝２から特図特電処理データ＝５にセットして、小当たり遊技処理のサブルーチンに移す準備を行い、特別図柄停止処理を終了する。
一方、ハズレ図柄と判定された場合には、特図特電処理データ＝２から特図特電処理データ＝０にセットして、特別図柄記憶判定処理のサブルーチンに移す準備を行い、特別図柄停止処理を終了する。
【０３２６】
ステップＳ３４０の大当たり遊技処理においては、メインＣＰＵ１１０ａは、上記長当たりまたは短当たりのいずれの大当たりを実行させるかを決定し、決定した大当たりを制御する処理を行う。
具体的には、まず、特別電動役物作動態様決定テーブルを参照し、上記ステップＳ３１３で決定された大当たり図柄の種類（停止図柄データ）に基づいて、大当たりの開放態様を決定する。
【０３２７】
次に、決定した大当たりの開放態様を実行させるために、大入賞口開放態様テーブルを参照し、大当たりの種類に応じた開放時間を特別遊技タイマカウンタにセットするとともに、第１大入賞口開閉ソレノイド１６ｃ（または第２大入賞口開閉ソレノイド１７ｃ）の駆動データを出力して第１大入賞口開閉扉１６ｂ（または第２大入賞口開閉扉１７ｂ）を開放させる。このとき、ラウンド遊技回数（Ｒ）記憶領域に１を加算する。
この開放中に規定個数の遊技球が入球するか、大入賞口の開放時間が経過すると（大入賞口入球数（Ｃ）＝９または特別遊技タイマカウンタ＝０である）と、第１大入賞口開閉ソレノイド１６ｃ（または第２大入賞口開閉ソレノイド１７ｃ）の駆動データの出力を停止して第１大入賞口開閉扉１６ｂ（または第２大入賞口開閉扉１７ｂ）を閉鎖させる。これにより、１回のラウンド遊技が終了する。このラウンド遊技の制御を繰り返し１５回行う。
【０３２８】
１５回のラウンド遊技が終了すると（ラウンド遊技回数（Ｒ）＝１５）、ラウンド遊技回数（Ｒ）記憶領域および大入賞口入球数（Ｃ）記憶領域に記憶されているデータをクリアするとともに、特図特電処理データ＝３から特図特電処理データ＝４にセットして、大当たり遊技終了処理のサブルーチンに移す準備を行い、大当たり遊技処理を終了する。
【０３２９】
ステップＳ３５０の大当たり遊技終了処理においては、メインＣＰＵ１１０ａは、高確率遊技状態または低確率遊技状態のいずれかの確率遊技状態を決定するとともに、時短遊技状態または非時短遊技状態のいずれかの遊技状態を決定する処理を行う。
具体的には、大当たり遊技終了時設定データテーブルを参照し、遊技状態バッファに記憶されているデータと上記ステップＳ３１３で決定された大当たり図柄の種類（停止図柄データ）とに基づいて、高確率遊技フラグの設定、高確率遊技回数（Ｘ）の設定、時短遊技フラグの設定、時短回数（Ｊ）の設定を行う。例えば、特別図柄１であれば、高確率遊技フラグ記憶領域に高確率遊技フラグをセットし、高確率遊技回数（Ｘ）カウンタに１００００回をセットする。更に、時短遊技フラグ記憶領域に時短遊技フラグをセットし、時短回数（Ｊ）カウンタにも１００００回をセットする。
その後、特図特電処理データ＝４から特図特電処理データ＝０にセットして、特別図柄記憶判定処理のサブルーチンに移す準備を行い、大当たり遊技終了処理を終了する。
【０３３０】
ステップＳ３６０の小当たり遊技処理においては、メインＣＰＵ１１０ａは、まず、特別電動役物作動態様決定テーブルを参照し、上記ステップＳ３１３で決定された小当たり図柄の種類（停止図柄データ）に基づいて、小当たりの開放態様を決定する。
次に、決定した小当たりの開放態様を実行させるために、大入賞口開放態様テーブルを参照し、小当たりの開放時間を特別遊技タイマカウンタにセットするとともに、第２大入賞口開閉ソレノイド１７ｃの駆動データを出力して第２大入賞口開閉扉１７ｂを開放させる。このとき、開放回数（Ｋ）記憶領域に１を加算する。
小当たりの開放時間が経過する（特別遊技タイマカウンタ＝０）と、第２大入賞口開閉ソレノイド１７ｃの駆動データの出力を停止して第２大入賞口開閉扉１７ｂを閉鎖させる。この第２大入賞口開閉扉１７ｂの開閉制御を繰り返し１５回行う。
【０３３１】
そして、第２大入賞口開閉扉１７ｂの開閉制御が１５回行われるか、第２大入賞口１７に規定個数の遊技球が入球する（開放回数（Ｋ）＝１５または大入賞口入球数（Ｃ）＝９である）と、小当たり遊技を終了させるため、第２大入賞口開閉ソレノイド１７ｃの駆動データの出力を停止させ、開放回数（Ｋ）記憶領域および大入賞口入球数（Ｃ）記憶領域に記憶されているデータをクリアするとともに、特図特電処理データ＝５から特図特電処理データ＝０にセットして、特別図柄記憶判定処理のサブルーチンに移す準備を行い、小当たり遊技処理を終了する。
【０３３２】
［主制御部の認証処理に関する制御処理］
これより、本発明の実施形態に係る遊技機１の主制御部１１０の認証処理に関する制御処理について説明する。まず、主制御部１１０のブート処理について説明する。
遊技機１に電源が投入されると、主制御部１１０にシステムリセットが発生し、メインＣＰＵ１１０ａは、ブートＲＯＭ１１０ｄに予め記憶されたブート処理用プログラムに基づいて、主制御部１１０のブート処理を行う。
図１４は、本実施形態に係る主制御部１１０によるブート処理を示すフローチャートである。
【０３３３】
ステップＳ５１において、メインＣＰＵ１１０ａは、内部状態を割込禁止に設定する。
ステップＳ５２において、メインＣＰＵ１１０ａは、自身の初期化後、メインＣＰＵ１１０ａ自身が正常に作動可能かどうかを確認する自己診断処理を行う。自己診断処理の結果、正常に作動可能であればステップＳ５３に処理を移し、正常に作動可能でなければ、その後の処理を行わない。
【０３３４】
ステップＳ５３において、メインＣＰＵ１１０ａは、内蔵回路等への初期値設定処理を行う。具体的には、メインＣＰＵ１１０ａは、スタックポインタにスタックポイント指定アドレスを設定し、内蔵レジスタの初期化を行うとともに、ワンチップマイコン１１０ｍの内蔵回路や周辺回路等の初期化、入出力ポートの初期化を行う。そして、メインＣＰＵ１１０ａは、初期値を必要とするこれらの内蔵回路等へ各種の初期値を設定する。このとき、メインＣＰＵ１１０ａは、検査値生成部５００の各構成部に対しても同様の処理を施して、検査値生成部５００に対する初期値設定処理を行う。
【０３３５】
ステップＳ５４において、メインＣＰＵ１１０ａは、検査値生成部５００に対してＨＷパラメータ設定処理を行う。具体的には、メインＣＰＵ１１０ａは、検査値生成部５００に対するＨＷパラメータを読み出すための読み出し信号をメインＲＯＭ１１０ｂへ出力する。そして、メインＣＰＵ１１０ａは、当該読み出し信号によりメインＲＯＭ１１０ｂから出力されたＨＷパラメータを、バスを介して取り込む。
【０３３６】
続いて、メインＣＰＵ１１０ａは、取り込んだＨＷパラメータを検査値生成部５００の決定手段５４０へ書き込むための書き込み信号、および生成手段５２０へ書き込むための書き込み信号を出力する。そして、メインＣＰＵ１１０ａは、当該書き込み信号によりメインＣＰＵ１１０ａから出力されたＨＷパラメータを、バスを介して決定手段５４０の決定回路５４２および生成手段５２０のビット列変換回路５２５を担うシフト量制御部Ｃへセットする。なお、ステップＳ５４のＨＷパラメータ設定処理は、メインＣＰＵ１１０ａが行う初期値設定処理の中でも、検査値生成部５００にＨＷパラメータを設定する処理を特筆したものであるため、初期値設定処理の一環として、ステップＳ５３の中で行うように構成することも可能である。
【０３３７】
ステップＳ５５において、検査値生成部５００は、変更条件設定処理を行う。具体的には、決定手段５４０の決定回路５４２は、セットされたＨＷパラメータが、予め用意された複数の変更条件のうち、どの変更条件に対応した値であるかを確認する。そして、決定回路５４２は、セットされたＨＷパラメータに対応する変更条件を、デフォルトの変更条件として変更条件記憶領域（Ｄ）にセットする。そして、決定回路５４２は、変更条件記憶領域（Ｄ）にセットされた変更条件を、決定手段５４０の判定回路５４１を担う変更条件記憶器５４１ａにセットする。判定回路５４１は、変更条件記憶器５４１ａにセットされた変更条件のビットパターンを比較器５４１ｂに出力する。
【０３３８】
これによって、決定手段５４０は、ブート処理後のコマンド送信処理の際に、バッファ手段５１０から出力された制御コマンドが変更条件を満たす制御コマンドであるか否かの判定を行うことができ、判定結果に応じた変換方式設定処理を行うことができる。
【０３３９】
ステップＳ５６において、検査値生成部５００は、更新タイミング条件設定処理を行う。具体的には、生成手段５２０のビット列変換回路５２５を担うシフト量制御部Ｃは、セットされたＨＷパラメータが、予め用意された複数の更新タイミング条件のうち、どの更新タイミング条件に対応した値であるかを確認する。そして、シフト量制御部Ｃは、セットされたＨＷパラメータに対応する更新タイミング条件を、デフォルトの条件として更新タイミング条件記憶領域（ＣＲ）にセットする。そして、シフト量制御部Ｃは、更新タイミング条件記憶領域（ＣＲ）にセットされた更新タイミング条件によって、シフト量Ａを更新するものとする。
【０３４０】
ステップＳ５７において、検査値生成部５００は、変換方式設定処理を行う。具体的には、決定手段５４０の決定回路５４２は、予め取り決められたデフォルトの変換方式である変換方式Ａを示す変換方式情報を、デフォルトの値として変換方式情報記憶領域（Ｓ）にセットする。そして、決定回路５４２は、変換方式情報記憶領域（Ｓ）にセットされた値に基づいて、生成手段５２０のビット列変換回路５２５を担う複数のローテート演算器のうちのローテート演算器Ａでビット列変換処理が施された誤り検査値が出力されるように、生成手段５２０の制御回路５２３へ変換方式制御信号を出力する。生成手段５２０の制御回路５２３は、当該変換方式制御信号に対応する入力選択信号を入力選択回路５２４へ出力する。
【０３４１】
ステップＳ５８において、検査値生成部５００は、シフト量設定処理を行う。具体的には、生成手段５２０の制御回路５２３は、上記変換方式制御信号の入力に基づいて、ビット列変換回路５２５を担うシフト量制御部Ｃへシフト量制御信号を出力する。ビット列変換回路５２５を担うシフト量制御部Ｃは、制御回路５２３から出力された当該シフト量制御信号の入力に基づいて、ビット列変換回路５２５を担うローテート演算器Ａに対してシフト量Ａ設定信号を出力し、シフト量記憶領域（ＣＳ）に記憶されたデフォルトのシフト量Ａをローテート演算器Ａに設定する。また、シフト量制御部Ｃは、制御回路５２３から出力された当該シフト量制御信号の入力に基づいて、ビット列変換回路５２５を担うローテート演算器Ｂに対してシフト量Ｂ設定信号を出力し、シフト量記憶領域（ＣＳ）に記憶されたデフォルトのシフト量Ｂをローテート演算器Ｂに設定する。
【０３４２】
これによって、生成手段５２０は、ビット列変換処理の際に、変換方式情報記憶領域（Ｓ）に記憶された変換方式情報に対応したローテート演算器によってビットローテート演算が行われた誤り検査値を付加手段５３０へ出力することができる。更に、当該誤り検査値を、シフト量記憶領域（ＣＳ）に記憶されたシフト量を用いてビットローテート演算が行われ、ビット列が変換された誤り検査値とすることができる。そして、付加手段５３０は、検査値付加処理の際に、当該変換方式および当該シフト量でビット列が変換された誤り検査値をバッファ手段５１０から出力された制御コマンドに付加することができる。本処理を終了すると、ブート処理が終了する。
【０３４３】
次に、変換方式設定処理、検査値生成処理、ビット列変換処理、シフト量設定処理、および検査値付加処理を含む主制御部１１０のコマンド送信処理について説明する。
図１５は、本実施形態に係る主制御部１１０におけるコマンド送信処理を示すフローチャートである。なお、図１５の各ステップにおいて、中括弧｛｝内の表記は、検査値生成部５００の決定回路５４２に設けられた、生成個数記憶領域（Ｐ）、変更タイミング情報記憶領域（Ｍi）、および変換方式情報記憶領域（Ｓ）への処理を概説するためのものである。
【０３４４】
主制御部１１０のブート処理を含む初期化処理を行った後、コマンド送信処理の実行タイミングとなると、メインＣＰＵ１１０ａは、メインＲＡＭ１１０ｃの送信データ用記憶領域にセットされた制御コマンド（Ｐ）を、検査値生成部５００を介して送信部５５０へ出力し、演出制御部１２０へ送信させる。
【０３４５】
ステップＳ７１において、メインＣＰＵ１１０ａは、メインＲＡＭ１１０ｃの生成個数記憶領域（Ｐ）の値を１加算して更新する。
ステップＳ７２において、メインＣＰＵ１１０ａは、送信データ用記憶領域にセットされた制御コマンド（Ｐ）が制御コマンド（１）に該当するか否かを判定する。具体的には、メインＣＰＵ１１０ａは、生成個数記憶領域（Ｐ）の値を参照し、Ｐ＝１であるか否かを判定する。Ｐ＝１であれば、ステップＳ７３に処理を移し、Ｐ＝１でなければ、ステップＳ７５に処理を移す。
【０３４６】
ステップＳ７３において、メインＣＰＵ１１０ａは、メインＲＯＭ１１０ｂに記憶されている固有情報を読み出す。そして、メインＣＰＵ１１０ａは、読み出した固有情報を検査値生成部５００へ出力する。
ステップＳ７４において、検査値生成部５００は、メインＣＰＵ１１０ａから出力された固有情報を、生成手段５２０の格納回路５２２を担う各格納回路（Ｐ−１）〜（Ｐ−Ｎ）に格納し、初期設定値として設定する。具体的には、検査値生成部５００のバッファ手段５１０は、メインＣＰＵ１１０ａからバスを介して固有情報をデータバッファ５１１へ取り込み、生成手段５２０へ出力する。生成手段５２０は、データバッファ５１１から出力された固有情報を、格納回路５２２を担う各格納回路（Ｐ−１）〜（Ｐ−Ｎ）へ格納する。
【０３４７】
ステップＳ７５において、メインＣＰＵ１１０ａは、送信データ用記憶領域にセットされた制御コマンド（Ｐ）を検査値生成部５００のバッファ手段５１０へ書き込む。具体的には、メインＣＰＵ１１０ａは、バッファ手段５１０へ制御コマンド（Ｐ）を書き込むための書き込み信号およびアドレスデータを出力するとともに、送信データ用記憶領域にセットされた制御コマンド（Ｐ）をデータバスへ出力する。バッファ手段５１０の制御回路５１２は、メインＣＰＵ１１０ａから出力された書き込み信号の入力に基づいて、バッファ手段５１０のデータバッファ５１１へ作動許可信号を出力する。データバッファ５１１は、制御回路５１２から出力された作動許可信号の入力に基づいて、データバス上の制御コマンド（Ｐ）を取り込む。
【０３４８】
ステップＳ７６において、バッファ手段５１０は、取り込んだ制御コマンド（Ｐ）を、決定手段５４０、生成手段５２０、および付加手段５３０へ出力する。具体的には、バッファ手段５１０の制御回路５１２は、メインＣＰＵ１１０ａから出力された書き込み信号の入力から所定時間遅延して、データバッファ５１１へ作動許可信号を出力する。データバッファ５１１は、当該作動許可信号の入力に基づいて、取り込んだ制御コマンド（Ｐ）を決定手段５４０、生成手段５２０、および付加手段５３０へ出力する。続いて、制御回路５１２は、データバッファ５１１から出力された制御コマンドが、決定手段５４０、生成手段５２０、および付加手段５３０で入力可能となるよう、これらの手段に対して作動許可信号を出力する。
【０３４９】
ステップＳ７７において、決定手段５４０は、バッファ手段５１０から出力された作動許可信号の入力に基づいて、制御コマンド（Ｐ）を取り込み、当該制御コマンド（Ｐ）の種別を判定する。具体的には、決定手段５４０の判定回路５４１は、当該制御コマンド（Ｐ）が、所定の制御コマンド群のうち最初に生成される制御コマンド、及び、所定の制御コマンド群の生成が終了した後に最初に生成される制御コマンドのいずれかに該当するか否かを判定する。判定回路５４１は、制御コマンド（Ｐ）が、当該いずれかに該当する制御コマンドであれば、バッファ手段５１０から出力された制御コマンドが変更条件を満たす制御コマンドであることを示す判定結果信号を決定回路５４２へ出力し、ステップＳ７８に処理を移す。一方、判定回路５４１は、制御コマンド（Ｐ）が、当該いずれかに該当する制御コマンドでなければ、バッファ手段５１０から出力された制御コマンドが変更条件を満たす制御コマンドでないことを示す判定結果信号を決定回路５４２へ出力し、ステップＳ７８に処理を移す。
【０３５０】
ステップＳ７８において、決定回路５４２は、判定回路５４１から出力された判定結果信号の入力に応じて、決定回路５４２に設けられた生成個数記憶領域（Ｐ）の値を１加算して更新する。これにより、決定回路５４２は、バッファ手段５１０から出力された制御コマンド（Ｐ）の生成個数Ｐを把握することができる。
ステップＳ７９において、決定回路５４２は、判定回路５４１から出力された判定結果信号が、バッファ手段５１０から出力された制御コマンド（Ｐ）が、変更条件を満たす制御コマンドであることを示す判定結果信号であるか否かを確認する。決定回路５４２は、判定結果信号の内容が、当該制御コマンド（Ｐ）が変更条件を満たす制御コマンドであることを示していれば、ステップＳ８０に処理を移す。一方、決定回路５４２は、判定結果信号の内容が、当該制御コマンド（Ｐ）が変更条件を満たす制御コマンドでないことを示していれば、ステップＳ８１に処理を移す。
【０３５１】
ステップＳ８０において、決定回路５４２は、バッファ手段５１０から変更条件を満たす制御コマンドが出力されると、変換方式を変更するタイミング、すなわち、変換方式情報記憶領域（Ｓ）に記憶されたＳの値を変更するタイミングを設定する。具体的には、決定回路５４２は、変更タイミング情報Ｍiを設定するべく、自身の変更タイミング情報記憶領域（Ｍi）に対して、現在の生成個数記憶領域（Ｐ）の値に予め取り決められたＭoの値を加算した値（Ｐ＋Ｍo）を記憶する。
ステップＳ８１において、決定回路５４２は、現在が変換方式を変更するタイミングであるか否かを判定する。具体的には、決定回路５４２は、変更タイミング情報記憶領域（Ｍi）の最小値Ｍminと現在の生成個数記憶領域（Ｐ）の値とを比較する。そして、決定回路５４２は、両者が一致していれば、現在は変更タイミングであると判定し、ステップＳ８２に処理を移し、両者が一致していなければ、現在は変更タイミングでないと判定し、ステップＳ８４に処理を移す。
【０３５２】
ステップＳ８２において、決定回路５４２は、変換方式を変更するべく、変換方式情報記憶領域（Ｓ）に記憶された変換方式情報を示すＳの値を変更する。具体的には、決定回路５４２は、変換方式情報を示すＳの値を予め取り決められた変更方式に従って変更し、変更後の変換方式情報を示すＳの値であるＳ’を変換方式情報記憶領域（Ｓ）へ記憶する。そして、決定回路５４２は、変更後の変換方式を生成手段５２０へ設定するべく、変換方式情報記憶領域（Ｓ）に記憶された変更後のＳ’の値に基づく変換方式制御信号を、生成手段５２０の制御回路５２３へ出力する。
【０３５３】
ステップＳ８３において、生成手段５２０の制御回路５２３は、決定回路５４２から出力された変換方式制御信号に基づいて、生成手段５２０のビット列変換回路５２５を担う複数のローテート演算器のうちの特定のローテート演算器と生成手段５２０の入力選択回路５２４との接続のみを有効とする入力選択信号を、入力選択回路５２４へ出力する。入力選択回路５２４は、当該入力選択信号に基づいて、特定のローテート演算器との接続の設定を行う。生成手段５２０は、入力選択回路５２４へ当該入力選択信号が入力されることで、変更後の変換方式に応じた当該特定のローテート演算器でビット列変換処理が施された誤り検査値を、付加手段５３０へ出力することができる。
【０３５４】
また、生成手段５２０の制御回路５２３は、決定回路５４２から出力された当該変換方式制御信号の入力に基づいて、ビット列変換回路５２５を担うシフト量制御部Ｃへシフト量制御信号を出力する。これによって、シフト量制御部Ｃは、所定の動作モードの期間が開始または終了したことを検知することができる。
【０３５５】
ステップＳ８４において、生成手段５２０は、バッファ手段５１０から出力された作動許可信号の入力に基づいて、制御コマンド（Ｐ）を取り込んで格納するとともに、過去に格納しておいた制御コマンド（Ｐ−Ｎ）を生成回路５２１へ出力する。具体的には、生成手段５２０の制御回路５２３は、バッファ手段５１０の制御回路５１２から出力された作動許可信号の入力に基づいて、格納回路５２２へシフト処理信号を出力する。格納回路５２２は、制御回路５２３から出力されたシフト処理信号の入力に基づいて、各格納回路（Ｐ−１）〜（Ｐ−Ｎ）のうち、最終段の格納回路（Ｐ−Ｎ）から、当該格納回路に格納しておいた制御コマンド（Ｐ−Ｎ）を、生成回路５２１へ出力する。これとともに、格納回路５２２は、格納回路（Ｐ−１）〜（Ｐ−Ｎ）に格納された各制御コマンドを次段へ順次シフトするとともに、バッファ手段５１０のデータバッファ５１１から出力された制御コマンド（Ｐ）を初段の格納回路（Ｐ−１）に新たに取り込んで格納する。
【０３５６】
ステップＳ８５において、生成回路５２１は、制御回路５２３から出力された作動許可信号の入力に基づいて、格納回路５２２から出力された制御コマンド（Ｐ−Ｎ）を取り込む。そして、生成回路５２１は、取り込んだ制御コマンド（Ｐ−Ｎ）を用いて、予め設定された生成方式で誤り検査値（Ｐ−Ｎ）を生成し、ビット列変換回路５２５へ出力する。
【０３５７】
ステップＳ８６において、ビット列変換回路５２５は、生成回路５２１から出力された誤り検査値（Ｐ−Ｎ）に対してビット列変換処理を施し、付加手段５３０へ出力する。具体的には、ビット列変換回路５２５を担うローテート演算器Ａは、生成回路５２１から出力された誤り検査値（Ｐ−Ｎ）を取り込んで、取り込んだ誤り検査値（Ｐ−Ｎ）のビット列に予め設定されたシフト量Ａでビットローテート演算を行う。そして、ローテート演算器Ａは、シフト量Ａでビットローテート演算が行われた誤り検査値（Ｐ−Ｎ）を、変換方式Ａでビット列変換処理が施された誤り検査値（Ｐ−Ｎ）として、入力選択回路５２４へ出力する。また、ビット列変換回路５２５のローテート演算器Ｂは、生成回路５２１から出力された誤り検査値（Ｐ−Ｎ）を取り込んで、取り込んだ誤り検査値（Ｐ−Ｎ）のビット列に予め設定されたシフト量Ｂでビットローテート演算を行う。そして、ローテート演算器Ｂは、シフト量Ｂでビットローテート演算が行われた誤り検査値（Ｐ−Ｎ）を、変換方式Ｂでビット列変換処理が施された誤り検査値（Ｐ−Ｎ）として、入力選択回路５２４およびシフト量制御部Ｃへ出力する。
【０３５８】
入力選択回路５２４は、制御回路５２３から出力された入力選択信号に基づいて、ローテート演算器Ａ、Ｂのいずれかとの接続のみを有効に作動させている。よって、ビット列変換回路５２５は、入力選択回路５２４との接続が有効に作動された特定のローテート演算器から出力された誤り検査値のみを、ビット列が変換された誤り検査値（Ｐ−Ｎ）として付加手段５３０へ出力する。
【０３５９】
ステップＳ８７において、ビット列変換回路５２５を担うシフト量制御部Ｃは、現在がシフト量を更新するタイミングであるか否かを判断する。具体的には、シフト量制御部Ｃは、制御回路５２３から出力されたシフト量制御信号の入力に基づいて、所定の動作モードの期間の開始または終了を検知し、現在が所定の動作モードの期間中であるか否かを判断する。
【０３６０】
そして、シフト量制御部Ｃは、現在が所定の動作モードの期間が開始した時点であれば、現在はシフト量Ａおよびシフト量Ｂを更新するタイミングであると判断し、ステップＳ８８に処理を移す。また、シフト量制御部Ｃは、現在が所定の動作モードの期間中の時点であれば、現在はシフト量Ｂのみを更新するタイミングであると判断し、ステップＳ８８に処理を移す。また、シフト量制御部Ｃは、現在が所定の動作モードの期間が終了した時点であれば、現在はシフト量Ｂの更新を中止するタイミングであると判断し、ステップＳ８８に処理を移す。一方、シフト量制御部Ｃは、現在が所定の動作モードの期間が開始または終了した時点、若しくは現在が所定の動作モードの期間中の時点でなければ、現在はシフト量を更新するタイミングではないと判断し、ステップＳ８９に処理を移す。
【０３６１】
ステップＳ８８において、ビット列変換回路５２５を担うシフト量制御部Ｃは、シフト量の制御を行う。具体的には、シフト量制御部Ｃは、現在が所定の動作モードの期間が開始した時点であれば、シフト量Ａおよびシフト量Ｂを更新する。すなわち、シフト量制御部Ｃは、シフト量Ａに係るシフト量設定処理として、ローテート演算器Ｂから出力された誤り検査値に基づいて、シフト量記憶領域（ＣＳ）に記憶されたシフト量Ａの値を、シフト量Ａに係る所定の更新方式に従って更新する。そして、シフト量制御部Ｃは、シフト量Ａ設定信号をローテート演算器Ａに出力し、シフト量記憶領域（ＣＳ）に記憶された更新後のシフト量Ａをローテート演算器Ａに設定する。また、シフト量制御部Ｃは、シフト量Ｂに係るシフト量設定処理として、乱数値を取得し、これを用いてシフト量記憶領域（ＣＳ）に記憶されたシフト量Ｂの値を更新する。そして、シフト量制御部Ｃは、シフト量Ｂ設定信号をローテート演算器Ｂに出力し、シフト量記憶領域（ＣＳ）に記憶された更新後のシフト量Ｂをローテート演算器Ｂに設定する。
【０３６２】
また、シフト量制御部Ｃは、現在が所定の動作モードの期間中の時点であれば、シフト量Ｂのみを更新する。すなわち、シフト量制御部Ｃは、シフト量Ｂに係るシフト量設定処理として、乱数値を取得してシフト量記憶領域（ＣＳ）に記憶されたシフト量Ｂの値を更新し、シフト量Ｂ設定信号を出力して更新後のシフト量Ｂをローテート演算器Ｂに設定する。また、シフト量制御部Ｃは、現在が所定の動作モードの期間が終了した時点であれば、シフト量Ｂの更新を行わずに、ローテート演算器Ｂから出力された誤り検査値を破棄する。
【０３６３】
ステップＳ８９において、付加手段５３０は、バッファ手段５１０から出力された作動許可信号の入力に基づいて、制御コマンド（Ｐ）および誤り検査値（Ｐ−Ｎ）を取り込む。そして、付加手段５３０は、取り込んだ制御コマンド（Ｐ）および誤り検査値（Ｐ−Ｎ）を送信部５５０へ書き込む。具体的には、付加手段５３０の入力選択回路５３１は、バッファ手段５１０のデータバッファ５１１から出力された制御コマンド（Ｐ）を取り込み、取り込んだ制御コマンド（Ｐ）をデータバスへ出力する。また、付加手段５３０の制御回路５３２は、バッファ手段５１０の制御回路５１２から出力された作動許可信号の入力に基づいて、送信部５５０の送信バッファ５５１へ制御コマンド（Ｐ）を書き込むための書き込み信号およびアドレスデータを出力する。
【０３６４】
また、制御回路５３２は、当該書き込み信号の出力から所定時間遅延して、入力選択回路５３１へ入力選択信号を出力する。入力選択回路５３１は、制御回路５３２から出力された入力選択信号の入力に基づいて、接続元をデータバッファ５１１から生成手段５２０の入力選択回路５２４へ切り替える。そして、入力選択回路５３１は、生成手段５２０の生成回路５２１から入力選択回路５２４を介して出力された誤り検査値（Ｐ−Ｎ）を取り込み、取り込んだ誤り検査値（Ｐ−Ｎ）をデータバスへ出力する。また、制御回路５３２は、入力選択信号を出力して入力選択回路５３１から誤り検査値（Ｐ−Ｎ）がデータバス上へ出力されると、送信バッファ５５１へ誤り検査値（Ｐ−Ｎ）を書き込むための書き込み信号およびアドレスデータを直ちに出力する。
【０３６５】
ステップＳ９０において、送信部５５０は、付加手段５３０から出力された制御コマンド（Ｐ）および誤り検査値（Ｐ−Ｎ）を演出制御部１２０へ直ちに送信する。具体的には、送信部５５０の送信バッファ５５１は、付加手段５３０から出力された制御コマンド（Ｐ）の書き込み信号の入力に基づいて、データバス上の制御コマンド（Ｐ）を取り込み、取り込んだ制御コマンド（Ｐ）を直ちに送信回路５５２へ出力する。また、送信バッファ５５１は、付加手段５３０から出力された誤り検査値（Ｐ−Ｎ）の書き込み信号の入力に基づいて、データバス上の誤り検査値（Ｐ−Ｎ）を取り込み、取り込んだ誤り検査値（Ｐ−Ｎ）を送信回路５５２へ直ちに出力する。送信回路５５２は、送信バッファ５５１から出力された制御コマンド（Ｐ）および誤り検査値（Ｐ−Ｎ）を一連の送信データとして、演出制御部１２０へ直ちに送信する。よって、制御コマンド（Ｐ）は、誤り検査値（Ｐ−Ｎ）が付加された制御コマンドとして演出制御部１２０へ送信されることになる。
【０３６６】
なお、ステップＳ８４の処理は、ステップＳ７６からステップＳ８５までの間に行われていればよく、ステップＳ８３の直後に行われる必要はない。
また、ステップＳ８９において、制御回路５３２が、入力選択回路５３１に対して入力選択信号を出力するタイミングは、入力選択回路５３１から出力された制御コマンド（Ｐ）が送信バッファ５５１へ書き込みが完了されるまでに要する時間が経過した後に、誤り検査値（Ｐ−Ｎ）の送信バッファ５５１への書き込みが開始されるようなタイミングに設定する。これによって、誤り検査値（Ｐ−Ｎ）が送信バッファ５５１へ書き込まれるタイミングは、送信バッファ５５１に書き込まれる制御コマンド（Ｐ）の直後に連続して誤り検査値（Ｐ−Ｎ）が書き込まれるようなタイミングとなる。
【０３６７】
誤り検査値の書き込みタイミングを上記のように設定することで、送信バッファ５５１のオーバーランやアンダーラン等が発生し、今回送信する制御コマンド（Ｐ）に対して付加するべき誤り検査値（Ｐ−Ｎ）が適切に付加されなくなるおそれを抑止することができる。このことが、演出制御部１２０での誤り検査処理の際に、実際に付加されて送信された誤り検査値が本来付加するべき誤り検査値と整合していないことに起因して誤り検査処理の検査結果が正常と判定されなくなるおそれを抑止し、誤り検査処理の確度を向上することにつながる。
【０３６８】
また、誤り検査値の書き込みタイミングを上記のように設定することで、今回付加するべき誤り検査値（Ｐ−Ｎ）の送信バッファ５５１への書き込みタイミングと、制御コマンド（Ｐ）の送信バッファ５５１への書き込みタイミングの時間軸上の位置関係が明確化され、誤り検査値（Ｐ−Ｎ）は制御コマンド（Ｐ）の直後に確実に付加され、一つの送信データとして送信されることとなる。これにより、誤り検査値（Ｐ−Ｎ）が、誤り検査値（Ｐ−Ｎ）単体で演出制御部１２０へ送信されることがない。よって、不正者が、主制御部１１０と演出制御部１２０の間の送信データを窃取して、誤り検査値（Ｐ−Ｎ）を不正に解析し再利用することが困難となり、遊技機１のセキュリティ強度を向上することができる。
【０３６９】
［演出制御部の制御処理］
これより、本発明の実施形態に係る遊技機１の演出制御部１２０の制御処理について説明する。まず、演出制御部１２０のメイン処理について説明する。
図１６は、本実施形態に係る演出制御部１２０によるメイン処理を示すフローチャートである。
【０３７０】
ステップＳ１０００において、サブＣＰＵ１２０ａは、初期化処理を行う。この処理において、サブＣＰＵ１２０ａは、電源投入に応じて、サブＲＯＭ１２０ｂからメイン処理に関するプログラムコードを読み込む。これとともに、サブＣＰＵ１２０ａは、サブＲＡＭ１２０ｃに記憶されるフラグなどを初期化し、設定値を設定する処理を行う。この処理が終了した場合には、ステップＳ１１００に処理を移す。
【０３７１】
なお、ステップＳ１０００の中で、主制御部１１０の誤り検査値付加機能に対応した誤り検査値出力機能を、検査値生成部６２０へ設定する処理が行われる。すなわち、サブＣＰＵ１２０ａは、主制御部１１０にてブート処理中に実行されるＨＷパラメータ設定処理、変更条件設定処理、変更タイミング条件設定処理、変換方式設定処理、およびシフト量設定処理と同様の処理を行う。その際、サブＣＰＵ１２０ａは、決定部６２３でデフォルトの変換方式およびシフト量Ａに係る更新タイミング条件を決定し、決定した変換方式およびシフト量Ａに係る更新タイミング条件に応じてビット列変換部６２４の設定を行う。
【０３７２】
ステップＳ１１００において、サブＣＰＵ１２０ａは、演出用乱数更新処理を行う。この処理において、サブＣＰＵ１２０ａは、サブＲＡＭ１２０ｃに記憶される演出用乱数値、演出図柄決定用乱数、演出モード決定用乱数等を更新する処理を行う。以降は、所定の割込処理が行われるまで、上記ステップＳ１１００の処理を繰り返し行う。
【０３７３】
次に、演出制御部１２０の割込処理について説明する。
図１７は、本実施形態に係る演出制御部１２０による割込処理を示すフローチャートである。
サブＣＰＵ１２０ａは、演出制御部１２０に設けられたクロックパルス発生回路（図示せず）から出力されるクロック信号に基づいて、所定の周期（例えば２ミリ秒）毎に、演出制御部１２０のタイマ割込処理を実行する。
【０３７４】
ステップＳ１２００において、サブＣＰＵ１２０ａは、サブＣＰＵ１２０ａのレジスタに記憶されている情報をスタック領域に退避させる。
ステップＳ１３００において、サブＣＰＵ１２０ａは、演出制御部１２０で用いられる各種タイマカウンタの更新処理を行う。
【０３７５】
ステップＳ１５００において、サブＣＰＵ１２０ａは、コマンド解析処理を行う。この処理において、サブＣＰＵ１２０ａは、サブＲＡＭ１２０ｃの受信データ用記憶領域に記憶された制御コマンドの種別を解析する処理を行う。
【０３７６】
演出制御部１２０の受信部６００では、主制御部１１０から送信された制御コマンドを受信し、自身の受信バッファに記憶すると、主制御部１１０から制御コマンドの受信割込要求があった旨を示す信号を出力し、制御コマンドの受信割込処理を発生させる。
そして、サブＣＰＵ１２０ａは、受信した制御コマンドの誤り検査処理を行うとともに、誤り検査値処理において、制御コマンドの正当性が認証されると、当該制御コマンドを受信バッファからサブＲＡＭ１２０ｃの受信データ用記憶領域へ取り込んで記憶する。そして、サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶された制御コマンドの種別を解析し、制御コマンドの種別に応じた処理を行う。なお、コマンド解析処理の詳細については後述する。
【０３７７】
ステップＳ１７００において、サブＣＰＵ１２０ａは、演出ボタン検出スイッチ３５ａの信号のチェックを行い、演出ボタン３５からの入力に関する演出用入力制御処理を行う。
ステップＳ１８００において、サブＣＰＵ１２０ａは、サブＲＡＭ１２０ｃの送信データ用記憶領域にセットされた制御コマンドや各種データを、ランプ制御部１４０や画像制御部１５０へ送信するための処理である演出用出力制御処理を行う。
ステップＳ１９００において、サブＣＰＵ１２０ａは、ステップＳ１２００で退避した情報をサブＣＰＵ１２０ａのレジスタに復帰させる。
【０３７８】
次に、演出制御部１２０のコマンド解析処理について説明する。
図１８および図１９は、本実施形態に係る演出制御部１２０によるコマンド解析処理を示すフローチャートである。なお、図１９のコマンド解析処理２は、図１８のコマンド解析処理１に引き続いて行われるものである。
【０３７９】
ステップＳ１５０１において、サブＣＰＵ１２０ａは、受信部６００の受信バッファに制御コマンドが記憶されているか否かを確認して、制御コマンドを受信したか否かを判定する。
サブＣＰＵ１２０ａは、受信バッファに制御コマンドが記憶されていれば、ステップＳ３０００に処理を移し、受信バッファに制御コマンドが記憶されていなければ、コマンド解析処理を終了する。
【０３８０】
ステップＳ３０００において、サブＣＰＵ１２０ａは、受信バッファに記憶されている制御コマンドに対して誤り検査処理を行い、受信した制御コマンドの正当性が認証されると、受信した制御コマンドを受信データ用記憶領域に取り込み、制御コマンドの種別を更に解析するべく、ステップＳ１５１０に処理を移す。なお、誤り検査処理の詳細については後述する。
【０３８１】
ステップＳ１５１０において、サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが、デモ指定コマンドであるか否かを確認する。
サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドがデモ指定コマンドであれば、ステップＳ１５１１に処理を移し、デモ指定コマンドでなければステップＳ１５２０に処理を移す。
【０３８２】
ステップＳ１５１１において、サブＣＰＵ１２０ａは、デモ演出パターンを決定するデモ演出パターン決定処理を行う。
具体的には、デモ演出パターンを決定し、決定したデモ演出パターンを演出パターン記憶領域にセットするとともに、決定したデモ演出パターンの情報を画像制御部１５０とランプ制御部１４０に送信するため、決定したデモ演出パターンに基づく演出パターン指定コマンドをサブＲＡＭ１２０ｃの送信データ用記憶領域にセットする。
【０３８３】
ステップＳ１５２０において、サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが、特別図柄記憶指定コマンドであるか否かを確認する。
サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが特別図柄記憶指定コマンドであれば、ステップＳ１５２１に処理を移し、特別図柄記憶指定コマンドでなければステップＳ１５３０に処理を移す。
【０３８４】
ステップＳ１５２１において、サブＣＰＵ１２０ａは、特別図柄記憶指定コマンドを解析して、液晶表示装置３１に表示させる特別図柄の保留画像（以下、「特図保留画像」という）の表示個数を決定するとともに、決定した特図保留画像の表示個数に対応する特図表示個数指定コマンドを画像制御部１５０とランプ制御部１４０に送信する特別図柄記憶数決定処理を行う。
【０３８５】
ステップＳ１５３０において、サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが、演出図柄指定コマンドであるか否かを確認する。
サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが演出図柄指定コマンドであれば、ステップＳ１５３１に処理を移し、演出図柄指定コマンドでなければステップＳ１５４０に処理を移す。
【０３８６】
ステップＳ１５３１において、サブＣＰＵ１２０ａは、受信した演出図柄指定コマンドの内容に基づいて、液晶表示装置３１に停止表示させる演出図柄３６を決定する演出図柄決定処理を行う。
具体的には、演出図柄指定コマンドを解析して、大当たりの有無、大当たりの種別に応じて演出図柄３６の組み合わせを構成する演出図柄データを決定し、決定された演出図柄データを演出図柄記憶領域にセットするとともに、演出図柄データを画像制御部１５０とランプ制御部１４０に送信するため、演出図柄データ示す停止図柄指定コマンドをサブＲＡＭ１２０ｃの送信データ用記憶領域にセットする。
【０３８７】
ステップＳ１５３２において、サブＣＰＵ１２０ａは、上記ステップＳ１１００において更新されている演出モード決定用乱数値から１つの乱数値を取得し、取得した演出モード決定用乱数値と受信した演出図柄指定コマンドに基づいて、複数の演出モード（例えば、ノーマル演出モードやチャンス演出モード）の中から１つの演出モードを決定する演出モード決定処理を行う。また、決定した演出モードは、演出モード記憶領域にセットされる。
【０３８８】
ステップＳ１５４０において、サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが、変動パターン指定コマンドであるか否かを確認する。
サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが変動パターン指定コマンドであれば、ステップＳ１５４１に処理を移し、変動パターン指定コマンドでなければステップＳ１５５０に処理を移す。
【０３８９】
ステップＳ１５４１において、サブＣＰＵ１２０ａは、上記ステップＳ１１００において更新されている演出用乱数値から１つの乱数値を取得し、取得した演出用乱数値、受信した変動パターン指定コマンドおよび演出モード記憶領域にセットされている演出モードに基づいて、複数の変動演出パターンの中から１つの変動演出パターンを決定する変動演出パターン決定処理を行う。
具体的には、ノーマル演出モードであれば、変動演出パターン決定テーブルを参照し、取得した演出用乱数値に基づいて１つの変動演出パターンを決定し、決定した変動演出パターンを演出パターン記憶領域にセットするとともに、決定した変動演出パターンの情報を画像制御部１５０とランプ制御部１４０に送信するため、決定した変動演出パターンに基づく演出パターン指定コマンドをサブＲＡＭ１２０ｃの送信データ用記憶領域にセットする。
その後、かかる演出パターンに基づいて、液晶表示装置３１、音声出力装置３２、演出用駆動装置３３、演出用照明装置３４が制御されることになる。なお、ここで決定した変動演出パターンに基づいて、演出図柄３６の変動態様が決定されることとなる。
【０３９０】
ステップＳ１５５０において、サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが、図柄確定コマンドであるか否かを確認する。
サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが図柄確定コマンドであれば、ステップＳ１５５１に処理を移し、図柄確定コマンドでなければステップＳ１５６０に処理を移す。
【０３９１】
ステップＳ１５５１において、サブＣＰＵ１２０ａは、演出図柄３６を停止表示させるために、演出図柄を停止表示させるための停止指定コマンドをサブＲＡＭ１２０ｃの送信データ用記憶領域にセットする演出図柄停止表示処理を行う。
【０３９２】
ステップＳ１５６０において、サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが、遊技状態指定コマンドであるか否かを判定する。
サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが遊技状態指定コマンドであればステップＳ１５６１に処理を移し、遊技状態指定コマンドでなければステップＳ１５７０に処理を移す。
【０３９３】
ステップＳ１５６１において、サブＣＰＵ１２０ａは、受信した遊技状態指定コマンドに基づいた遊技状態を示すデータをサブＲＡＭ１２０ｃにある遊技状態記憶領域にセットする。
【０３９４】
ステップＳ１５７０において、サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが、オープニング指定コマンドであるか否かを確認する。
サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドがオープニング指定コマンドであればステップＳ１５７１に処理を移し、オープニング指定コマンドでなければステップＳ１５８０に処理を移す。
【０３９５】
ステップＳ１５７１において、サブＣＰＵ１２０ａは、当たり開始演出パターンを決定する当たり開始演出パターン決定処理を行う。
具体的には、オープニング指定コマンドに基づいて当たり開始演出パターンを決定し、決定した当たり開始演出パターンを演出パターン記憶領域にセットするとともに、決定した当たり開始演出パターンの情報を画像制御部１５０とランプ制御部１４０に送信するため、決定した当たり開始演出パターンに基づく演出パターン指定コマンドをサブＲＡＭ１２０ｃの送信データ用記憶領域にセットする。
【０３９６】
ステップＳ１５８０において、サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが、大入賞口開放指定コマンドであるか否かを確認する。
サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが大入賞口開放指定コマンドであればステップＳ１５８１に処理を移し、大入賞口開放指定コマンドでなければステップＳ１５９０に処理を移す。
【０３９７】
ステップＳ１５８１において、サブＣＰＵ１２０ａは、大当たり演出パターンを決定する大当たり演出パターン決定処理を行う。
具体的には、大入賞口開放指定コマンドに基づいて大当たり演出パターンを決定し、決定した大当たり演出パターンを演出パターン記憶領域にセットするとともに、決定した大当たり演出パターンの情報を画像制御部１５０とランプ制御部１４０に送信するため、決定した大当たり演出パターンに基づく演出パターン指定コマンドをサブＲＡＭ１２０ｃの送信データ用記憶領域にセットする。
【０３９８】
ステップＳ１５９０において、サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドが、エンディング指定コマンドであるか否かを確認する。
サブＣＰＵ１２０ａは、受信データ用記憶領域に記憶されている制御コマンドがエンディング指定コマンドであればステップＳ１５９１に処理を移し、エンディング指定コマンドでなければコマンド解析処理を終了する。
【０３９９】
ステップＳ１５９１において、サブＣＰＵ１２０ａは、当たり終了演出パターンを決定する当たり終了演出パターン決定処理を行う。
具体的には、エンディング指定コマンドに基づいて当たり終了演出パターンを決定し、決定した当たり終了演出パターンを演出パターン記憶領域にセットするとともに、決定した当たり終了演出パターンの情報を画像制御部１５０とランプ制御部１４０に送信するため、決定した当たり終了演出パターンに基づく演出パターン指定コマンドをサブＲＡＭ１２０ｃの送信データ用記憶領域にセットする。本処理を終了すると、コマンド解析処理が終了する。
【０４００】
次に、演出制御部１２０の誤り検査処理について説明する。
図２０は、本実施形態に係る演出制御部１２０による誤り検査処理を示すフローチャートである。なお、図２０の各ステップにおいて、中括弧｛｝内の表記は、サブＲＡＭ１２０ｃに設けられた、受信個数記憶領域（Ｐ）、変更タイミング情報記憶領域（Ｍi）、および変換方式情報記憶領域（Ｓ）への処理を概説するためのものである。
【０４０１】
ステップＳ３０１０において、サブＣＰＵ１２０ａは、制御コマンドの受信割込要求があった旨を示す信号が演出制御部１２０の受信部６００から出力されると、サブＲＡＭ１２０ｃの受信個数記憶領域（Ｐ）の値を更新する。
ステップＳ３０２０において、サブＣＰＵ１２０ａは、受信部６００の受信バッファに記憶された制御コマンド（Ｐ）が制御コマンド（１）に該当するか否かを判定する。具体的には、サブＣＰＵ１２０ａは、受信個数記憶領域（Ｐ）の値を参照し、Ｐ＝１であるか否かを判定する。Ｐ＝１であれば、ステップＳ３０３０に処理を移し、Ｐ＝１でなければ、ステップＳ３０５０に処理を移す。
【０４０２】
ステップＳ３０３０において、サブＣＰＵ１２０ａは、サブＲＯＭ１２０ｂに記憶されている固有情報を読み出す。そして、サブＣＰＵ１２０ａは、読み出した固有情報を検査値生成部６２０へ出力する。
ステップＳ３０４０において、サブＣＰＵ１２０ａは、検査値生成部６２０へ出力された固有情報を検査値生成部６２０内の格納部６２２にて格納し、初期設定値として設定する。
【０４０３】
ステップＳ３０５０において、サブＣＰＵ１２０ａは、受信部６００の受信バッファに記憶された制御コマンド（Ｐ）から、当該制御コマンド（Ｐ）に付加された誤り検査値（Ｐ−Ｎ）を抽出する。
ステップＳ３０６０において、サブＣＰＵ１２０ａは、抽出した誤り検査値（Ｐ−Ｎ）を検査部６１０へ出力するとともに、誤り検査値（Ｐ−Ｎ）を抽出後の制御コマンド（Ｐ）を検査値生成部６２０の格納部６２２および決定部６２３へ出力する。
【０４０４】
ステップＳ３０７０において、サブＣＰＵ１２０ａは、受信部６００から出力された制御コマンド（Ｐ）を取り込み、当該制御コマンド（Ｐ）の種別を決定部６２３にて判定する。具体的には、サブＣＰＵ１２０ａは、当該制御コマンド（Ｐ）が、所定の制御コマンド群のうち最初に生成される制御コマンド、及び、所定の制御コマンド群の生成が終了した後に最初に生成される制御コマンドのいずれかに該当するか否かを判定する。
ステップＳ３０８０において、サブＣＰＵ１２０ａは、制御コマンド（Ｐ）が、当該いずれかに該当する制御コマンドであれば、抽出後の制御コマンド（Ｐ）が変更条件を満たす制御コマンドであると判断し、ステップＳ３０９０に処理を移す。一方、サブＣＰＵ１２０ａは、制御コマンド（Ｐ）が、当該いずれかに該当する制御コマンドでなければ、抽出後の制御コマンド（Ｐ）が変更条件を満たす制御コマンドでないと判断し、ステップＳ３１００に処理を移す。
【０４０５】
ステップＳ３０９０において、サブＣＰＵ１２０ａは、変更条件を満たす制御コマンドを受信したと判断すると、変換方式を変更、すなわち、変換方式情報記憶領域（Ｓ）に記憶された変換方式情報の値を変更するタイミングを決定部６２３にて設定する。具体的には、サブＣＰＵ１２０ａは、変更タイミング情報Ｍiを設定するべく、変更タイミング情報記憶領域（Ｍi）に対して、現在の生成個数記憶領域（Ｐ）の値に予め取り決められたＭoの値を加算した値（Ｐ＋Ｍo）を記憶する。
ステップＳ３１００において、サブＣＰＵ１２０ａは、現在が変換方式を変更するタイミングであるか否かを決定部６２３にて判定する。具体的には、サブＣＰＵ１２０ａは、変更タイミング情報記憶領域（Ｍi）の最小値Ｍminと現在の受信個数記憶領域（Ｐ）の値とを比較する。そして、サブＣＰＵ１２０ａは、両者が一致していれば、現在は変更タイミングであると判定し、ステップＳ３１１０に処理を移し、両者が一致していなければ、現在は変更タイミングでないと判定し、ステップＳ３１３０に処理を移す。
【０４０６】
ステップＳ３１１０において、サブＣＰＵ１２０ａは、変換方式を変更するべく、変換方式情報記憶領域（Ｓ）に記憶された変換方式情報を示すＳの値を決定部６２３にて変更する。具体的には、サブＣＰＵ１２０ａは、変換方式情報を示すＳの値を予め取り決められた変更方式に従って変更し、変更後の変換方式情報を示すＳの値であるＳ’を変換方式情報記憶領域（Ｓ）へ記憶する。
ステップＳ３１２０において、サブＣＰＵ１２０ａは、変換方式情報記憶領域（Ｓ）に記憶された変更後のＳ’の値に対応する変換方式を、決定部６２３にてビット列変換部６２４へ設定する。ビット列変換部６２４では、変更後の変換方式でビット列変換処理が施された誤り検査値を検査部６１０へ出力することができる。
【０４０７】
ステップＳ３１３０において、サブＣＰＵ１２０ａは、受信部６００から出力された制御コマンド（Ｐ）を格納部６２２にて格納するとともに、過去に格納しておいた制御コマンド（Ｐ−Ｎ）を格納部６２２から生成部６２１へ出力する。
ステップＳ３１４０において、サブＣＰＵ１２０ａは、格納部６２２にて出力された制御コマンド（Ｐ−Ｎ）を用いて、予め設定された生成方式で誤り検査値（Ｐ−Ｎ）を生成部６２１にて生成し、ビット列変換部６２４へ出力する。
【０４０８】
ステップＳ３１５０において、サブＣＰＵ１２０ａは、生成部６２１にて生成された誤り検査値（Ｐ−Ｎ）に対してビット列変換部６２４にてビット列変換処理を施し、検査部６１０へ出力する。具体的には、サブＣＰＵ１２０ａは、決定部６２３にて設定された変換方式が変換方式Ａであれば、誤り検査値（Ｐ−Ｎ）のビット列に対して、予め設定されたシフト量Ａで、ビット列変換部６２４にてビットローテート演算を行う。そして、サブＣＰＵ１２０ａは、得られた演算結果である元のビット列に戻った誤り検査値（Ｐ−Ｎ）を、検査部６１０へ出力する。
【０４０９】
また、サブＣＰＵ１２０ａは、決定部６２３にて設定された変換方式が変換方式Ｂであれば、誤り検査値（Ｐ−Ｎ）のビット列に対して、当該誤り検査値（Ｐ−Ｎ）のビット列のビット幅で規定されるローテート数の取り得る範囲の個数分だけ、ビット列変換部６２４にてビットローテート演算を行う。そして、サブＣＰＵ１２０ａは、ビット列が変換された、当該ローテート数の取り得る範囲の個数分の誤り検査値（Ｐ−Ｎ）を、それぞれ検査部６１０へ出力する。
【０４１０】
ステップＳ３１６０において、サブＣＰＵ１２０ａは、受信部６００から出力された誤り検査値（Ｐ−Ｎ）と、ビット列変換部６２４から出力された誤り検査値（Ｐ−Ｎ）とを検査部６１０にて比較して照合する。サブＣＰＵ１２０ａは、両者が一致する場合は、誤り検査の検査結果は正常であると判断する。一方、サブＣＰＵ１２０ａは、両者が一致しない場合は、検査結果は正常でないと判断する。
【０４１１】
なお、サブＣＰＵ１２０ａは、変換方式Ｂが設定されて、ローテート数の取り得る範囲の個数分だけ誤り検査値（Ｐ−Ｎ）がビット列変換部６２４から出力された場合は、出力された全ての誤り検査値（Ｐ−Ｎ）を、受信部６００から出力された誤り検査値と比較して照合する。このとき、サブＣＰＵ１２０ａは、ビット列変換部６２４から出力された何れかの誤り検査値（Ｐ−Ｎ）が、受信部６００から出力された誤り検査値と一致する場合は、検査結果は正常と判断し、何れの誤り検査値（Ｐ−Ｎ）も、受信部６００から出力された誤り検査値と一致しない場合は、検査結果は正常でないと判断する。
【０４１２】
ステップＳ３１７０において、サブＣＰＵ１２０ａは、検査結果が正常であったか否かを検査部６１０にて判断する。サブＣＰＵ１２０ａは、検査結果が正常であったと判断された場合は、今回受信した誤り検査値（Ｐ−Ｎ）が付加された制御コマンド（Ｐ）、および今回の誤り検査値（Ｐ−Ｎ）の生成元であるＮ個前の制御コマンド（Ｐ−Ｎ）の正当性を認証することができたことにより、主制御部１１０の正当性が認証されたと判断する。そして、サブＣＰＵ１２０ａは、遊技機１は正常に稼働していると判断し、ステップＳ３１８０に処理を移す。一方、サブＣＰＵ１２０ａは、検査結果が正常でないと判断された場合は、主制御部１１０の正当性を認証することができなかったと判断する。そして、サブＣＰＵ１２０ａは、遊技機１で不正行為等が発生したおそれがあると判断し、ステップＳ３２００に処理を移す。
【０４１３】
ステップＳ３１８０において、サブＣＰＵ１２０ａは、現在がシフト量を更新するタイミングであるか否かを決定部６２３にて判断する。具体的には、サブＣＰＵ１２０ａは、現在が所定の動作モードの期間が開始した時点であれば、現在はシフト量Ａを更新するタイミングであると決定部６２３にて判断し、ステップＳ３１９０に処理を移す。また、サブＣＰＵ１２０ａは、現在が所定の動作モードの期間が開始した時点でなければ、現在はシフト量Ａを更新するタイミングでないと決定部６２３にて判断し、受信した制御コマンド（Ｐ）をサブＲＡＭ１２０ｃの受信データ用記憶領域へ出力し、当該制御コマンド（Ｐ）に応じた処理を行わせるべく、誤り検査処理を終了する。
【０４１４】
ステップＳ３１９０において、サブＣＰＵ１２０ａは、シフト量の制御を行う。具体的には、サブＣＰＵ１２０ａは、現在が所定の動作モードの期間が開始した時点であれば、変換方式Ｂが設定されて、ビット列変換部６２４から検査部６１０へ出力された複数（ローテート数の取り得る範囲の個数）の誤り検査値（Ｐ−Ｎ）のうち、受信部６００から出力された誤り検査値と一致した誤り検査値（Ｐ−Ｎ）を決定部６２３へ出力する。そして、サブＣＰＵ１２０ａは、当該誤り検査値に基づいて、シフト量Ａを所定の更新方式に従って更新する。そして、サブＣＰＵ１２０ａは、受信した制御コマンド（Ｐ）をサブＲＡＭ１２０ｃの受信データ用記憶領域へ出力し、当該制御コマンド（Ｐ）に応じた処理を行わせるべく、誤り検査処理を終了する。
ステップＳ３２００において、サブＣＰＵ１２０ａは、遊技機１で不正行為等が発生したおそれがあると判断した場合、その旨を報知する為に報知信号を出力し、誤り検査処理を終了する。
【０４１５】
なお、ステップＳ３１３０の処理は、ステップＳ３０６０からステップＳ３１４０までの間に行われていればよく、ステップＳ３１２０の直後に行われる必要はない。また、ステップＳ３１８０およびステップＳ３１９０の処理は、ステップＳ３１６０より後に行われていればよく、ステップＳ３１７０の直後に行われる必要はない。また、ステップＳ３２００の処理の後、誤り検査処理を終了するのではなく、ステップＳ３１８０に処理を移してもよい。
【０４１６】
サブＣＰＵ１２０ａは、生成した報知信号を、例えば、ランプ制御部１４０や画像制御部１５０、あるいは遊技機１を管理するホールコンピュータ等へ送信する。ランプ制御部１４０や画像制御部１５０等は、受信した報知信号に基づいて、遊技機１で不正行為が発生したおそれがある旨を報知する演出を実行する。この演出は、例えば、液晶表示装置３１に通常出現しないキャラクタを出現させたり、通常出現するキャラクタを通常とは異なる方法で出現させるなどである。また、液晶表示装置３１の輝度を変えたり、色を変えたり、ランプ制御部１４０に対して所定のランプを表示制御するようにしてもよい。いずれにしても、遊技店の従業員が当該遊技機１の前を通過した際に、その状態に気付くようにしてあればよい。また、この演出は、顧客がその状態に気付かないような演出でもよく、また、顧客が容易に気付く演出であってもよい。顧客が容易に気付く演出にすれば、不正行為を効率的に抑止することができる。
【０４１７】
また、報知信号に、遊技機１の遊技状態や大当たりの種別に関する情報を含めてもよい。これらの情報に基づいて、遊技機１を管理するホールコンピュータ等によって不正行為が行われているか否かの判断を行ってもよい。例えば、「高確率遊技状態」は賞球が集中していても正常である場合がある。よって、高確率遊技状態中は、その他の状態とは異なる条件で不正行為のおそれがあるか否かについて判断するのがよい。また、遊技状態や大当たりの種別に関する情報は、報知信号に含めずに別信号として出力するようにしてもよい。この場合、従業員は、報知信号と遊技状態や大当たりの種別に関する情報の両方に基づいて、不正行為のおそれがあるか否かについて判断する。
【０４１８】
なお、主制御部１１０と、周辺制御部３００の他の制御部との間の認証処理は、主制御部１１０と演出制御部１２０との間の認証処理とほぼ同様の手順で行われるため説明を省略する。
【０４１９】
以上、これまで説明してきたように、本実施形態では、セキュリティ機能として、主制御部１１０が出力する制御コマンドの正当性を検査して主制御部１１０の正当性を認証する。主制御部１１０は、今回送信する制御コマンドより前（過去）に生成した制御コマンドを用いて誤り検査値を生成する。そして、主制御部１１０は、今回送信する制御コマンドに、当該誤り検査値を付加して演出制御部１２０に送信する。一方、演出制御部１２０は、今回受信した制御コマンドより前（過去）に主制御部１１０にて生成され受信した制御コマンドを用いて誤り検査値を生成する。そして、演出制御部１２０は、今回受信した制御コマンドに付加された誤り検査値と、生成した誤り検査値とを照合して誤り検査を行う。
【０４２０】
通常、チェックサム等の誤り検査値は生成元の制御コマンドに付加されて通信エラーチェックに利用される。これに対して、本実施形態では、上述のように、過去に生成した制御コマンドの誤り検査値を、今回送信する制御コマンドに付加する。このような従来にない新規かつ簡易な手法を用いることにより、不正者が制御コマンドと誤り検査値を窃取しても制御コマンドと誤り検査値の対応関係を容易に知ることができないようにすることができる。したがって、本実施形態によれば、不正行為を防止することができ、遊技機１のセキュリティ強度を向上させることができる。
【０４２１】
また、主制御部１１０が過去に生成した制御コマンドの誤り検査値を、今回送信する制御コマンドに付加して送信し、演出制御部１２０が制御コマンドの誤り検査処理を行うことにより、今回受信した制御コマンドの正当性を認証するとともに、過去に生成された制御コマンド、すなわち、今回付加された誤り検査値の生成元となった制御コマンドの正当性をも認証することができる。すなわち、制御コマンドの連続性を認証することができることとなり、不正行為をより検出しやすくなり、遊技機１のセキュリティ強度を向上させることができる。
【０４２２】
また、本実施形態では、Ｐ≦Ｎの場合に送信される制御コマンドには、遊技機１に固有の固有情報が付加されることで、誤り検査値が遊技機１に固有の値とすることができる。これにより、固有情報を知らない不正者が一部の制御コマンドを窃取したとしても誤り検査値の解析を不可能とすることができ、遊技機１のセキュリティ強度を更に向上させることができる。
【０４２３】
また、本実施形態では、通常は通信エラーチェックに用いる誤り検査値を、不正行為を検出するための検査値として利用している。このように通信エラーチェックに従来から用いられている誤り検査値を利用することで、不正行為を検出するための検査値生成手段を別途設けずとも不正行為を検出することができ、セキュリティ強度を向上させることができる。すなわち、遊技機の主制御部のリソースが限られているという状況下において、セキュリティ強度を向上させつつ、主制御部１１０の処理負荷の増大を抑制することができる。
【０４２４】
また、本実施形態では、主制御部１１０へ追加するセキュリティ機能の具体的態様として追加された検査値生成部５００は、ワイヤードロジック制御方式のハードウェアで回路構成され、メインＣＰＵ１１０ａと送信部５５０との間に設けられている。その際、検査値生成部５００とメインＣＰＵ１１０ａとの間の入出力制御方式、および検査値生成部５００と送信部５５０との間の入出力制御方式を、それぞれＣＰＵインターフェース方式としている。そして、検査値生成部５００内の各手段や各回路間の入出力制御方式を同期インターフェース方式としている。よって、本実施形態では、メインＣＰＵ１１０ａの処理負荷やコードサイズを増大させない検査値生成部５００を、既存の遊技機のメインＣＰＵと送信部との間の入出力制御方式を維持しつつ、追加することができる。したがって、本実施形態によれば、遊技機１がセキュリティ機能を有しながらも、セキュリティ機能を有することで増大する主制御部１１０のＣＰＵの処理負荷やコードサイズを最大限抑制することができる。同時に、本実施形態によれば、このような特徴を有するセキュリティ機能を既存の遊技機に比較的簡易に追加することができる。
【０４２５】
また、本実施形態では、検査値生成部５００が、過去に生成した制御コマンドの誤り検査値に対して、更にビット列変換処理を施している。しかも、検査値生成部５００は、ビット列変換処理に用いられる変換方式を複数備え、送信する制御コマンドに基づいて適宜変更している。よって、不正者が、制御コマンドおよび誤り検査値を複数窃取したとしても、制御コマンドと誤り検査値の対応関係を解析することが更に困難となる。したがって、遊技機１が有する誤り検査値付加機能に対する秘匿性を更に向上させることができ、遊技機１のセキュリティ強度を更に向上させることができる。
【０４２６】
また、本実施形態では、変換方式を実際に変更するタイミングを、変換方式を変更するか否かの判断対象となる制御コマンドの出力タイミングから、Ｍo個後に出力された制御コマンドの出力タイミングとしている。すなわち、本実施形態では、変換方式の変更条件が成立したタイミングと実際の変更タイミングとを分散させている。よって、不正者が、制御コマンドおよび誤り検査値を複数窃取したとしても、制御コマンドと誤り検査値の対応関係を解析することが更に困難となる。したがって、遊技機１が有する誤り検査値付加機能に対する秘匿性を更に向上させることができ、遊技機１のセキュリティ強度を更に向上させることができる。
【０４２７】
また、本実施形態では、検査値生成部５００が、ビット列変換処理に用いられる変換方式を適宜変更するための条件である変更条件を複数備えることで、誤り検査値付加機能を予め複数用意している。そして、どのような変更条件に基づいて変換方式が変更されるのかは、主制御部１１０のブート処理時の初期値設定時以外ではアクセスされないメインＲＯＭ１１０ｂの特定の記憶領域に記憶されているＨＷパラメータの値に基づいて決定されている。よって、不正者が、制御コマンドおよび誤り検査値を複数窃取したとしても、どのような変更条件で変換方式が変更されるのかを解析することが困難となり、制御コマンドと誤り検査値の対応関係を解析することが更に困難となる。したがって、遊技機１が有する誤り検査値付加機能に対する秘匿性を更に向上させることができ、遊技機１のセキュリティ強度を更に向上させることができる。
【０４２８】
また、本実施形態では、誤り検査値付加機能およびその選択情報としてのＨＷパラメータを予め複数種類用意するものの、特定のＨＷパラメータのみを実装している。よって、ブート処理でのＨＷパラメータの選択処理に伴うプログラムを新たに設ける必要がなく、プログラムのコードサイズを増大させることもない。また、遊技機メーカーが特定の誤り検査値付加機能だけを採用したい場合などであっても、所望の誤り検査値付加機能に対応したＨＷパラメータのみを実装すればよく、遊技機メーカーの嗜好や用途に柔軟に対応することができる。したがって、多様性に富んだセキュリティ機能であっても比較的簡易に追加することができ、汎用性の高いセキュリティ機能を提供することができる。また、遊技機１の開発段階中で設計・検証作業等に使用するＨＷパラメータと、遊技機１の出荷前に実際に実装されるＨＷパラメータとを変えることにより、最終的にどのＨＷパラメータが採用されたのかを知り得る者を限定することができ、遊技機１が有する誤り検査値付加機能に対する秘匿性を更に向上させることができる。
【０４２９】
また、本実施形態では、ビット列変換処理に用いられる複数の変換方式として、シフト量が規則的に変動する変換方式Ａと、シフト量がランダムに変動する変換方式Ｂとを設けている。変換方式Ｂでは、シフト量がランダムに変動するため、変換方式Ｂを用いてビット列変換処理が施された誤り検査値の各ビットは、ビット列変換処理毎で不規則にシフトする。よって、不正者が、制御コマンドおよび誤り検査値を複数窃取したとしても、どのようなシフト量でビット列が変換されているのかを解析することが困難となり、制御コマンドと誤り検査値の対応関係を解析することが更に困難となる。したがって、遊技機１が有する誤り検査値付加機能に対する秘匿性を更に向上させることができ、遊技機１のセキュリティ強度を更に向上させることができる。
【０４３０】
特に、シフト量をランダムに変動させる変換方式Ｂでは、元の誤り検査値のビット列が異なっていても、ビット列変換処理毎で重複した値を出力する場合があり、不正者が制御コマンドと誤り検査値を複数窃取したとしても、シフト量の変動に関する規則性の有無や変換方式の変更の有無を解析することが困難となり、制御コマンドと誤り検査値の対応関係を解析することが更に困難となる。したがって、遊技機１が有する誤り検査値付加機能に対する秘匿性を更に向上させることができ、遊技機１のセキュリティ強度を更に向上させることができる。
【０４３１】
また、本実施形態では、シフト量がランダムに変動する変換方式は変換方式Ｂのみとしている。そして、変換方式Ｂでビット列が変換された誤り検査値が、制御コマンドに付加されて演出制御部１２０へ送信されるのは、所定の動作モードの期間の際、すなわち、所定の制御コマンド群が演出制御部１２０へ送信される期間に限定した。このため、演出制御部１２０側での誤り検査処理にて元の誤り検査値のビット列に戻す際に、シフト量をランダムに変動させることでビット列変換処理の試行回数が増加する傾向を、最大限抑制することができる。すなわち、本実施形態では、シフト量をランダムに変動させることで制御コマンドと誤り検査値の対応関係が解析困難となりセキュリティ強度を向上させつつも、セキュリティ機能を追加することで増大する処理負荷を最大限抑制することができる。しかも、処理負荷の増大は、リソースに限りのある主制御部１１０ではなく、リソースに比較的余裕のある演出制御部１２０が負担することとなり、少ない負担で大きな不正防止効果を得ることができる。
【０４３２】
また、本実施形態では、変換方式の具体的な実施態様として、検査値生成部５００がビット列変換回路５２５を備え、ビット列変換回路５２５を、比較的簡易な回路構成であるシフトレジスタで構成した。このため、本実施形態では、ローテート演算器Ａの回路を設計した後は、その回路データをローテート演算器Ｂにも流用することが可能であり、回路設計やその検証作業に係る開発工数や開発難易度を抑制することができる。すなわち、本実施形態では、複数の変換方式が設けられたことで制御コマンドと誤り検査値の対応関係が解析困難となりセキュリティ強度が向上するという効果を、設けられた変換方式の数よりも少数の演算器を設計するだけで得ることができ、少ない開発コストで大きな不正防止効果を得ることができる。
【０４３３】
また、本実施形態では、過去に生成した制御コマンドの誤り検査値に対して、暗号鍵を用いて暗号化処理を施すのではなく、ビット列変換処理を施すこととし、その際の変換方式として、ローテート演算器を用いてビットローテート演算を行う構成とした。暗号鍵を用いて暗号化処理を施す方式では、固定データである暗号鍵情報を、主制御部１１０に保持させておく必要があり、静的な解析手法で不正に解析されやすい虞れがある。また、暗号鍵情報を、動的な解析手法でしか解析できないような構成とするためには、暗号鍵の交換や共有化および同期化といった、複雑な処理を新たに設ける必要が生じる。これに対し、本実施形態では、ビット列変換処理を行うビット列変換回路５２５が、シフト量Ａを、内部のローテート演算器Ｂから出力された誤り検査値および既存の遊技機が備えるパリティチェック等の演算機能を流用して更新する。加えて、ビット列変換回路５２５が、シフト量Ｂを、既存の遊技機で用いられる乱数値を流用して更新する。すなわち、本実施形態では、ビット列変換処理での鍵となるシフト量Ａ、Ｂを、既存の遊技機が備える構成を流用して更新するという簡易な手法によって変動させて、動的な構成のセキュリティ機能を実現している。しかも、ローテート演算器Ａ、Ｂは、比較的簡易な回路構成であるシフトレジスタから構成されており、暗号鍵情報を用いて暗号化処理を施す方式の演算回路と比較し、圧倒的に配線リソースが少ない。このため、本実施形態では、回路設計および検証作業において、配線リソースによる回路配置調整や遅延時間調整によって動作周波数やダイサイズ等の決定に及ぼす悪影響を抑止することができる。
【０４３４】
また、本実施形態では、変換方式Ｂでビット列変換処理を施す場合だけではなく、変換方式Ａでビット列変換処理を施す場合にも、シフト量を変動させる。よって、本実施形態では、変換方式Ｂでビット列が変換された誤り検査値が制御コマンドに付加される期間以外の際、すなわち、所定の動作モードの期間以外の際でも、変換方式Ａでビット列が変換された誤り検査値の各ビットが、ビット列変換処理毎で変動する。このため、本実施形態では、不正者が、制御コマンドに付加された誤り検査値がどのようなシフト量でビット列が変換されているのかを解析することが、所定の動作モードの期間以外に送信された誤り検査値に対しても困難となり、セキュリティ強度を更に向上させることができる。
【０４３５】
また、本実施形態では、変換方式Ａで用いられるシフト量Ａを規則的に変動させるために規定されたシフト量Ａに係る更新タイミング条件を予め複数備えることで、誤り検査値付加機能を予め複数用意している。そして、どのような更新タイミング条件に基づいてシフト量Ａが更新されるのかは、主制御部１１０のブート処理時の初期値設定時以外ではアクセスされないメインＲＯＭ１１０ｂの特定の記憶領域に記憶されているＨＷパラメータの値に基づいて決定されている。よって、不正者が、制御コマンドおよび誤り検査値を複数窃取したとしても、シフト量Ａの更新に関する規則性を解析することが困難となり、制御コマンドと誤り検査値の対応関係を解析することが更に困難となる。したがって、遊技機１が有する誤り検査値付加機能に対する秘匿性を更に向上させることができ、遊技機１のセキュリティ強度を更に向上させることができる。
【０４３６】
本実施形態では、バッファ手段５１０のデータバッファ５１１と生成手段５２０の格納回路５２２とを接続し、格納回路５２２の入力側にはデータバッファ５１１が配置され、格納回路５２２の出力側には生成回路５２１が配置されるような回路構成とした。すなわち、本実施形態では、格納回路５２２で格納する対象を、バッファ手段５１０から出力された制御コマンドとした。しかしながら、本発明はこれに限定されず、格納回路５２２を生成回路５２１の出力側に設け、格納回路５２２で格納する対象を誤り検査値としてもよい。なお、演出制御部１２０においても、格納部６２２で格納する対象を誤り検査値としてもよいし、制御コマンドとしてもよい。また、主制御部１１０での格納対象と、演出制御部１２０での格納対象とが異なってもよい。
【０４３７】
また、本実施形態では、ＨＷパラメータは、デフォルトの変更条件およびシフト量Ａに係る更新タイミング条件を決定するための選択情報として定義したが、本発明はこれに限定されない。例えば、ＨＷパラメータをデフォルトの変換方式およびシフト量Ａに係る更新タイミング条件を決定する選択情報とすることもできる。このとき、決定回路５４２には、予め複数の変換方式に対応したＨＷパラメータを用意しておくとともに、デフォルトの変更条件を用意しておく。そして、決定回路５４２は、ブート処理中には、ＨＷパラメータ設定処理で設定されたＨＷパラメータに対応する変換方式を示す変換方式情報を、変換方式情報記憶領域（Ｓ）に記憶して変換方式制御信号を出力し、生成手段５２０への設定を行えばよい。
【０４３８】
また、ＨＷパラメータは、決定手段５４０で用いる変更方式や変更タイミングの設定方法を決定するための選択情報としても定義することができる。例えば、ＨＷパラメータで変更方式を決定する場合、決定回路５４２には、予め定められた変換方式の変更順序等を規定する変更方式を複数用意しておき、ＨＷパラメータと対応付けておく。そして、決定回路５４２は、ブート処理中のＨＷパラメータ設定処理において、メインＣＰＵ１１０ａから設定されたＨＷパラメータに対応する特定の変更方式をセットし、セットされた変更方式に従って変換方式を変更させていけばよい。
【０４３９】
また、ＨＷパラメータは、生成手段５２０で用いるシフト量Ｂに係る更新方式を決定するための選択情報としても定義することができる。例えば、ＨＷパラメータでシフト量Ｂに係る更新タイミング条件を決定する場合、ビット列変換回路５２５を担うシフト量制御部Ｃは、既存の遊技機が備える複数の乱数生成回路から乱数値を取得可能に接続しておき、それぞれの乱数生成回路とＨＷパラメータとを対応付けておく。そして、シフト量制御部Ｃは、ブート処理中のＨＷパラメータ設定処理において、メインＣＰＵ１１０ａから設定されたＨＷパラメータに対応する特定の乱数生成回路との接続のみを有効に作動させ、特定の乱数生成回路から取得される乱数値を用いてシフト量Ｂを更新していけばよい。
【０４４０】
すなわち、本発明において、ＨＷパラメータは、決定手段５４０で用いる変更条件や生成手段５２０で用いるシフト量Ａに係る更新タイミング条件を決定するための選択情報に限定されず、変換方式に係る変更プロトコルやシフト量の更新に係る規則を決定するための選択情報として定義することができる。つまり、ＨＷパラメータは、変換方式に係る変更プロトコルやシフト量の更新に係る規則を実施態様とした誤り検査値付加機能に対する選択情報である。
【０４４１】
このように、本発明では、誤り検査値付加機能が、主制御部１１０のブート処理時の初期値設定時以外ではアクセスされないメインＲＯＭ１１０ｂの特定の記憶領域に記憶されているＨＷパラメータの値に基づいて決定される。よって、不正者が、制御コマンドおよび誤り検査値を複数窃取したとしても、遊技機１にどのような誤り検査値付加機能が搭載されているのかを解析することが困難となり、誤り検査値付加機能に対する秘匿性は更に向上し、遊技機１のセキュリティ強度をより一層向上させることができる。
【０４４２】
また、本実施形態では、判定回路５４１を担う比較器５４１ｂは、バッファ手段５１０から出力された制御コマンドが変更条件を満たしているとき、当該制御コマンドが変更条件を満たす制御コマンドであることを示す判定結果信号を、毎回出力しなくともよい。すなわち、比較器５４１ｂは、バッファ手段５１０から出力された制御コマンドが、変更条件を満たす制御コマンドであっても、決定回路５４２にて変換方式が変更されなくなり、不正者が変換方式の変更条件を解析することが更に困難となる。
【０４４３】
更に、比較器５４１ｂは、制御コマンドが入力される度に、判定結果信号自体を毎回出力しなくともよい。この場合、バッファ手段５１０の制御回路５１２と、決定回路５４２とを直接制御線で接続しておき、制御回路５１２から決定回路５４２へ作動許可信号を出力させる。決定回路５４２は、当該作動許可信号の入力に基づいて、生成個数記憶領域（Ｐ）の値を更新して、変換方式設定処理を行えばよい。さらに、バッファ手段５１０の制御回路５１２と、決定手段５４０の判定回路５４１や決定回路５４２とを接続するのではなく、生成手段５２０の制御回路５２３とこれらとを接続し、制御回路５２３から判定回路５４１や決定回路５４２へ作動許可信号を出力させるようにしてもよい。
【０４４４】
また、本実施形態では、Ｐ＝１の場合に、固有情報を初期設定値として生成手段５２０に設定した。そして、Ｐ≦Ｎの場合に、主制御部１１０では、制御コマンド（Ｐ）に対して初期検査値を付加して送信し、演出制御部１２０では、対応する初期検査値を用いて誤り検査処理を行うこととしたが、本発明はこれに限定されず、演出制御部１２０は、Ｐ≦Ｎの場合は誤り検査処理を行わず、Ｐ＞Ｎとなってから初めて誤り検査処理を行うこととしてもよい。
【０４４５】
また、本実施形態では、演出制御部１２０は、主制御部１１０が有する変換方式を変更する機能と同様の機能を有する決定部６２３であることとしたが、本発明はこれに限定されない。例えば、演出制御部１２０は、受信した制御コマンドに付加された誤り検査値と、ビット列変換部６２４が有する全ての変換方式でビット列が変換された誤り検査値とを照合して、誤り検査処理を行うこととしてもよい。この場合、演出制御部１２０は、いずれかの誤り検査値と一致すれば、検査結果は正常であるとして、受信した制御コマンドの正当性ならびに主制御部１１０の正当性を認証すればよい。
【０４４６】
また、本実施形態では、Ｐ＝１の場合に、固有情報を初期設定値として格納回路５２２に設定したが、本発明はこれに限定されない。例えば、主制御部１１０に計時手段を設け、または主制御部１１０が予め備えている計時手段を用いて、電源投入時から制御コマンドの送信タイミングまでの経過時間を経時情報として取得し、取得した経時情報を初期検査値として用いてもよい。取得した経時情報の値は、ランダム性を有する変動値であるため、これを用いて生成された初期検査値を再利用することは困難であり、遊技機１のセキュリティ強度をより一層向上させることができる。このとき、演出制御部１２０は、上記のようにＰ≦Ｎの場合は誤り検査処理を行わないようにすればよい。
【０４４７】
また、このとき、予めＮ≧２と取り決めてあれば、演出制御部１２０は、制御コマンドに付加された経時情報が、連続して送信された経時情報同士が時系列として連続性を有するか否か、すなわち、連続して送信された経時情報の値が送信順番に従って増加しているか否かを確認することによって誤り検査処理を行ってもよい。なお、経時情報は、計時手段をリアルタイムクロック回路等として取得される絶対的な時間であってもよいし、リセット時から計数された相対的な時間であってもよい。いずれにしても、経時情報は、その取得されるタイミングが不定期なタイミングであればある程、様々な値に変動するため、実質的に遊技機１に固有の情報と捉える事ができる。また、Ｎ≧２のとき、経時情報は、制御コマンドの送信タイミング毎に計時手段から取得した経時情報を用いてもよいし、最初に生成した制御コマンドの送信タイミングに取得した経時情報を複数の制御コマンドに用いてもよい。また、例えば、最初に生成した制御コマンドに付加される誤り検査値の生成元となる初期設定値は、固定値であるメインＣＰＵ１１０ａの識別番号（ＩＤ）を用い、それ以降の制御コマンドに付加される誤り検査値の生成元となる初期設定値は、変動値である経時情報を用いるというように、固定値と変動値を組み合わせることもできる。
【０４４８】
また、格納回路５２２に設定される初期設定値として、例えば、主制御部１１０の誤り検査値付加機能の選択情報であるＨＷパラメータを用いてもよい。すなわち、主制御部１１０の検査値生成部５００を構成する決定手段５４０は、ブート処理時に自身の決定回路５４２にセットされたＨＷパラメータを、ＨＷパラメータ設定処理後も記憶しておく。そして、決定回路５４２が、格納回路５２２へ固有情報を設定する必要があるか否かを判断する。このとき、バッファ手段５１０の制御回路５１２と決定回路５４２とを制御線で接続しておき、制御回路５１２から作動許可信号を出力させる。決定回路５４２は、当該作動許可信号の入力に基づいて生成個数記憶領域（Ｐ）の値を更新し、生成個数記憶領域（Ｐ）の値がＰ＝１であれば、バッファ手段５１０から出力された制御コマンドは、格納回路５２２に格納された制御コマンドがクリアされてから最初にメインＣＰＵ１１０ａにて生成された制御コマンドであると判断する。この場合、決定回路５４２は、その旨をバッファ手段５１０へ通知して固有情報の出力を要求させず、自身に記憶しているＨＷパラメータを格納回路５２２へ設定し、初期設定値として用いればよい。
【０４４９】
ＨＷパラメータは、その内容や実装方法を遊技機メーカーの独自の判断で決定することができるため秘匿性が高く、実質的に遊技機１に固有の情報と捉えることができる。なお、演出制御部１２０は、上記のようにＰ≦Ｎの場合は誤り検査処理を行わないようにすればよい。このようにすることで、演出制御部１２０は、ＨＷパラメータに相当する誤り検査値付加機能の選択情報を、予め主制御部１１０との間で取り決めていなくとも、主制御部１１０で設定された誤り検査値付加機能に対応した誤り検査値出力機能を選択することができる。よって、不正者が、演出制御部１２０自体を解析しても、複数の誤り検査値出力機能のうちのどの出力機能でもって出力された誤り検査値を用いて誤り検査処理が行われるのかを特定することができず、当該出力機能の秘匿性を確保することができ、遊技機１のセキュリティ強度を更に向上させることができる。
【０４５０】
また、本実施形態では、検査値生成部５００内の各手段間や各回路間の入出力制御方式を、同期インターフェース方式とした。そして、検査値生成部５００内の各手段同士や各回路同士のデータ送受は、主制御部１１０のクロックパルス発生回路から出力されたクロック信号に同期して行うこととした。しかしながら、本発明はこれに限定されず、検査値生成部５００内の各手段同士や各回路同士のデータ送受は、当該クロック信号に対して非同期で行うこととしてもよい。この場合であっても、検査値生成部５００内では、出力するデータの接続先に対してイネーブル信号等を出力すれば、接続先は当該イネーブル信号等の入力に基づいて、当該出力データを取り込み、ＣＰＵインターフェース方式とは異なることとなる。
【０４５１】
また、本実施形態では、誤り検査値を送信部５５０の送信バッファ５５１へ書き込むタイミングは、付加手段５３０の制御回路５３２が出力する入力選択信号の出力タイミングを調整することによって制御していた。しかしながら、本発明はこれに限定されず、バッファ手段５１０の制御回路５１２が、制御回路５３２に対して出力する作動許可信号の出力タイミングを調整することで制御することもできる。また、生成手段５２０の制御回路５２３が、格納回路５２２へ出力するシフト処理信号の出力タイミングや、生成回路５２１へ出力する作動許可信号の出力タイミングを調整することで制御することもできる。制御回路５３２が出力する入力選択信号の出力タイミングは、制御回路５１２が出力する作動許可信号の入力に基づいているからである。また、当該入力選択信号が入力される入力選択回路５３１に誤り検査値が入力されるタイミングは、制御回路５２３が出力する上記シフト処理信号や上記作動許可信号の入力に基づいているからである。
【０４５２】
なお、制御回路５２３が出力する上記シフト処理信号や上記作動許可信号の出力タイミングにおいても、制御回路５１２が出力する作動許可信号の入力に基づいており、更に、制御回路５１２が出力する作動許可信号の出力タイミングは、メインＣＰＵ１１０ａが出力するバッファ手段５１０への書き込み信号の入力に基づいている。そして、メインＣＰＵ１１０ａが出力する当該書き込み信号は、既存の遊技処理用プログラムに元来規定されていたコマンド送信処理の実行タイミングによって予め指定されている。
【０４５３】
このように、本発明では、検査値生成部５００が誤り検査値を送信部５５０へ書き込むタイミングは、既存の遊技処理用プログラムで規定されたコマンド送信処理の実行タイミングに基づいて一意に決定すればよく、比較的簡易にタイミング設計が可能である。よって、本発明は、セキュリティ機能を既存の遊技機に比較的簡易に追加することができ、かつ、誤り検査値の書き込みタイミングの設計に、比較的大きなマージンを確保することができ、誤り検査処理の確度確保が容易となる。
【０４５４】
また、本実施形態では、検査値生成部５００を構成する生成手段５２０のビット列変換回路５２５を担うシフト量制御部Ｃでは、シフト量の更新に係る制御をシフト量制御部Ｃが内部に備えるアルゴリズムに基づいて処理することも可能であることとして説明したが、本発明は、検査値生成部５００を全てハードウェアで構成してもよい。
【０４５５】
また、本実施形態では、検査値生成部５００をワンチップマイコン１１０ｍとは別個の回路構成としたが、本発明はこれに限定されず、検査値生成部５００をワンチップマイコン１１０ｍと一体の回路構成としてもよいし、送信部５５０と一体の回路構成としてもよい。更に、本発明は、検査値生成部５００、ワンチップマイコン１１０ｍ、及び送信部５５０の全てを一体の回路構成としてもよい。
【０４５６】
また、本実施形態では、本発明をパチンコ遊技機に適用する例を示したが、これに限定されず、本発明は、雀球遊技機、アレンジボール等のパチンコ遊技機以外の弾球遊技機、スロットマシン等の回胴式遊技機などの他の遊技機にも適用することができる。これらの遊技機においても、本実施形態と同様に構成することにより、本実施形態と同様の効果を得ることができる。
【０４５７】
また、本実施形態では、本発明を遊技機に適用する例を示したが、これに限定されず、本発明は、遊技機のような複数の制御部を備え、これら制御部間のデータ伝送について認証処理を実行する電子機器およびその認証方法にも適用することができる。これらの電子機器およびその認証方法においても、本実施形態と同様に構成することにより、本実施形態と同様の効果を得ることができる。また、本実施形態は、その目的および構成等に特に矛盾や問題がない限り、互いの技術を流用することができる。
【符号の説明】
【０４５８】
１          遊技機
１１０      主制御部
１１０ａ    メインＣＰＵ
１１０ｂ    メインＲＯＭ
１１０ｃ    メインＲＡＭ
１１０ｄ    ブートＲＯＭ
１２０      演出制御部
１２０ａ    サブＣＰＵ
１２０ｂ    サブＲＯＭ
１２０ｃ    サブＲＡＭ
３００      周辺制御部
５００      検査値生成部
５１０      バッファ手段
５２０      生成手段
５２１      生成回路
５２５      ビット列変換回路
５３０      付加手段
５４０      決定手段
５５０      送信部
６００      受信部
６１０      検査部
６２０      検査値生成部
６２１      生成部
６２２      格納部
６２３      決定部
６２４      ビット列変換部
【図１】
0005412495.tif 000002
【図２】
0005412495.tif 000003
【図３】
0005412495.tif 000004
【図４】
0005412495.tif 000005
【図５】
0005412495.tif 000006
【図６】
0005412495.tif 000007
【図７】
0005412495.tif 000008
【図８】
0005412495.tif 000009
【図９】
0005412495.tif 000010
【図１０】
0005412495.tif 000011
【図１１】
0005412495.tif 000012
【図１２】
0005412495.tif 000013
【図１３】
0005412495.tif 000014
【図１４】
0005412495.tif 000015
【図１５】
0005412495.tif 000016
【図１６】
0005412495.tif 000017
【図１７】
0005412495.tif 000018
【図１８】
0005412495.tif 000019
【図１９】
0005412495.tif 000020
【図２０】
0005412495.tif 000021