以下、図面を参照して本発明を実施するための形態について説明する。
[遊技機の基本構成]
図1は、本発明に係る遊技機の一実施形態である第1の実施形態のパチンコ遊技機1の外観構成を示す正面図である。また、図2は、図1に示すパチンコ遊技機1の電気的構成を示すブロック図である。
本実施の形態に係るパチンコ遊技機1は、遊技盤101を備えている。遊技盤101の図1において右下方であって、枠部材110の右下部には、遊技者によって操作され、発射部292(図2参照)を作動させるための操作ハンドル113が設けられている。操作ハンドル113は、遊技者側に突出する形状を呈している。操作ハンドル113は、発射部292を作動させて遊技球を発射させる発射指示部材114を備えている。発射指示部材114は、操作ハンドル113の外周部において、遊技者から見て右回りに回転可能に設けられている。発射部292は、発射指示部材114が遊技者によって直接操作されている場合に、遊技球を発射させる。公知の技術であるため説明を省略するが、操作ハンドル113には、遊技者が発射指示部材114を直接操作していることを検出するセンサなどが設けられている。
発射部292の作動によって発射された遊技球は、レール102a,102b間を上昇して遊技盤101の上部位置に達した後、遊技領域103内を落下する。遊技領域103には、複数の釘(図示せず)や、遊技球の落下方向を変化させる風車(図示せず)や、入球口が配設されており、遊技球を各種の方向に向けて落下させるようにしている。ここで、「入球口」は、いずれも後述する第1始動口105、第2始動口120、普通入賞口107、第1大入賞口109c、第2大入賞口129cの総称である。
遊技盤101の略中央部分には、図柄表示部104が配置されている。図柄表示部104は、例えば、液晶ディスプレイ等のディスプレイを有している。図柄表示部104の下方には、遊技領域103に向けて打ち込まれた遊技球を受入れ可能な第1始動口105が配置されている。第1始動口105の下方には、第2始動口120が配置されている。第2始動口120は、一対の可動片(図示せず)が閉状態であるときは遊技球を受け入れることが不可能又は受け入れ困難となっており、この一対の可動片が開状態であるときは、第1始動口105よりも遊技球の受け入れが容易となる。
また、図柄表示部104の左側には、入賞ゲート106が配設されている。入賞ゲート106は、遊技球の通過を検出し、第2始動口120を一定時間だけ開放させる普通図柄の抽選を行うために設けられている。図柄表示部104の左側部や下方等には、複数の普通入賞口107が配設されている。各普通入賞口107に遊技球が入球すると、所定の賞球数(例えば、10個)の払い出しが行われる。遊技領域103の最下部には、どの入球口にも入球しなかった遊技球を回収する回収口108が設けられている。
図柄表示部104は、後述する演出制御部203(図2参照)から第1始動口105又は第2始動口120に遊技球が入球したことが報知されたときに、複数の装飾図柄の変動表示を開始し、所定時間経過後に当該装飾図柄の変動を停止させる。この停止時に特定図柄(例えば、「777」)が揃うと、遊技者は第1大当たり遊技(長当たり遊技)を実行する権利を獲得したこととなり、その後、第1大当たり遊技(長当たり遊技)が開始される。第1大当たり遊技(長当たり遊技)が開始されると、遊技領域103の下方に位置する第1大入賞口開閉装置109における第1大入賞口開閉扉109aが、一定の期間開放する動作を所定回数(例えば、15回)繰り返し、入球した遊技球に対応する賞球が払い出される。
一方、図柄表示部104における上記装飾図柄の停止時に上記特定図柄とは別の特定図柄(例えば、「737」)が揃うと、遊技者は第2大当たり遊技(短当たり遊技)を実行する権利を獲得したこととなり、その後、第2大当たり遊技(短当たり遊技)が開始される。第2大当たり遊技(短当たり遊技)が開始されると、第1大入賞口開閉装置109の右斜め上方に位置する第2大入賞口開閉装置129における第2大入賞口開閉扉129aが、第1大入賞口開閉扉109aの開閉動作に比して短い時間にて一定の期間開放する動作を所定回数(例えば、15回)繰り返し、入球した遊技球がある場合、これに対応する賞球が払い出される。
また、遊技盤101の遊技領域103の外周には、枠部材110が設けられ、開口部から遊技領域103が遊技者側に露出している。枠部材110は、遊技者側に突出する形状を呈している。枠部材110において、遊技領域103の左上部及び右下部には、演出ライト(ランプユニット)111a及び111bがそれぞれ設けられている。各演出ライト111a及び111bは、複数のライト112を備えている。各演出ライト111a及び111bは、上下駆動モータ(図示せず)でそれぞれ駆動されることにより、それぞれが備える複数のライト112から照射される光の方向を上下方向、すなわち、パチンコ遊技機1の正面にいる遊技者の頭部と腹部を結ぶ方向に平行な方向に変更可能に構成されている。
また、各ライト112は、各演出ライト111a及び111bを構成する回転駆動モータ(図示せず)で駆動されることにより、それぞれ所定半径を有する円の円周方向に移動する。上記構成により、各ライト112から照射された光を回転移動させつつ、各演出ライト111a及び111b全体から照射された光を上下移動させる演出を行うことができる。さらに、枠部材110の下部には、遊技球が供給される受け皿ユニット119が設けられている。この受け皿ユニット119には、貸し玉装置(図示せず)から貸し出される遊技球が供給される。
図1において、図柄表示部104の右側には、演出用の役物(以下、「演出役物」という)115が設けられている。演出役物115は、キャラクターとして人間の上半身(特に頭部)を模式的に表している。演出役物115は、キャラクターの瞼部116を開閉して、キャラクターが瞬きをするが如くに、瞼部116を上下方向に沿って移動可能に設けられている。また、演出役物115は、キャラクターの頭部を左右方向に移動可能に設けられている。
また、枠部材110において、操作ハンドル113の左側には、遊技者により操作される演出ボタン117が設けられている。演出ボタン117の操作は、例えば、遊技中における特定のリーチ演出に際し、演出ボタン117の操作を促すガイダンスが表示されている間だけ有効となる。
加えて、枠部材110には、演出効果音又は不正を知らしめる音響を出力するスピーカ277(図2参照)が組み込まれている。このスピーカ277は、高音・中音・低音の領域を出力できるタイプのものであり、通常演出時は高音・中音・低音をバランスよく出力するが、例えば、特別演出時又は不正等があった場合には、周りによく聞こえるように高音領域を高く出力するように制御される。
次に、本発明の実施の形態に係るパチンコ遊技機1の電気的構成について、図2に示すブロック図を参照して説明する。パチンコ遊技機1は、電気的な構成上は、制御手段200に、第1始動口検出部221等の各種検出手段や、図柄表示部104等の各種演出手段、役物作動装置231、払出部291、発射部292などが接続されて構成されている。制御手段200は、図2に示す例では、主制御部10と、中間部20と、演出制御部203と、賞球制御部204と、ランプ制御部205とから構成されている。
主制御部10は、CPU10aと、ROM10bと、RAM10cと、生成送信回路10gとを備えている。CPU10aは、パチンコ遊技機1の遊技に係る基本動作を制御し、ROM10bに予め記憶されているプログラム(プログラムコード)に基づき、遊技内容の進行に伴う基本処理を実行する。ROM10bには、CPU10aがパチンコ遊技機1の遊技内容の進行に伴う基本処理を実行するためのプログラムコードが予め記憶されている。
RAM10cは、CPU10aがパチンコ遊技機1の遊技内容の進行に伴う基本処理を実行する際に行う演算処理において、データ等のワークエリアとして機能する。生成送信回路10gは、主制御部10から中間部20を介して演出制御部203に送信される制御コマンドの正当性を認証するために用いる誤り検査値を生成し、生成した誤り検査値を制御コマンドに付加して中間部20に送信する。なお、主制御部10が行う制御コマンドの正当性を認証する認証処理に係る処理の詳細については後述する。この主制御部10では、第1始動口105又は第2始動口120への遊技球の入球を契機として、大当たりの抽選を行うとともに、この抽選結果に基づいて、ROM10bに記憶されている演出に係わるコマンドの選択を行う。
主制御部10の入力側には、第1始動口検出部221と、第2始動口検出部225と、ゲート検出部222と、普通入賞口検出部223と、第1大入賞口検出部214と、第2大入賞口検出部224とが接続されている。第1始動口検出部221は、第1始動口105に遊技球が入球したことを検出して検出結果を主制御部10へ送信する。第2始動口検出部225は、第2始動口120に遊技球が入球したことを検出して検出結果を主制御部10へ送信する。ゲート検出部222は、入賞ゲート106を遊技球が通過したことを検出して検出結果を主制御部10へ送信する。普通入賞口検出部223は、普通入賞口107に入球した遊技球を検出して検出結果を主制御部10へ送信する。第1大入賞口検出部214は、第1大入賞口109cに入球した遊技球を検出して検出結果を主制御部10へ送信する。第2大入賞口検出部224は、第2大入賞口129cに入球した遊技球を検出して検出結果を主制御部10へ送信する。上記各検出部は、例えば、近接スイッチなどを用いて構成することができる。
また、この主制御部10の出力側には、役物作動装置231が接続されている。本実施の形態では、役物作動装置231は、第1大入賞口開閉扉109a及び第2大入賞口開閉扉129aをそれぞれ開閉させる第1大入賞口開閉ソレノイド109b及び第2大入賞口開閉ソレノイド129bと、第2始動口120を開閉させる第2始動口開閉ソレノイド120bとから構成されている。
役物作動装置231は、主制御部10によって制御され、長当たり遊技時に、第1大入賞口開閉ソレノイド109bを通電して第1大入賞口開閉扉109aを開放したり、短当たり遊技及び小当たり遊技時に、第2大入賞口開閉ソレノイド129bを通電して第2大入賞口開閉扉129aを開放したり、また、上記普通図柄の当選によって第2始動口開閉ソレノイド120bを通電して第2始動口120を開閉したりする。
中間部20は、CPU20aと、ROM20bと、RAM20c等を備えている。CPU20aは、主にパチンコ遊技機1の認証に係る動作を制御し、ROM20bに予め記憶されているプログラム(プログラムコード)に基づき認証処理を実行する。ROM20bには、CPU20aが処理を実行するためのプログラムコードが記憶されている。RAM20cは、CPU20aが処理を実行する際に行う演算処理や認証処理を実行する際に行う演算処理等のワークエリアとして機能する。中間部20は、主制御部10の生成送信回路10gと同様の方法で誤り検査値を生成する。中間部20は、主制御部10から送信された誤り検査値と生成した誤り検査値とを用いて、制御コマンドの正当性を認証する認証処理を行う認証機能と、主制御部10から送信される制御コマンドを示す制御信号を演出制御部203等へ中継する中継機能とを有している。
演出制御部203は、CPU203aと、ROM203bと、RAM203cと、VRAM203d等を備えている。CPU203aは、主にパチンコ遊技機1の遊技中における演出を制御し、ROM203bに予め記憶されているプログラム(プログラムコード)に基づき、主制御部10より送信される制御信号にて示された制御コマンドに基づいて演出の抽選及び演出処理を実行する。ROM203bには、CPU203aが演出の抽選及び演出処理を実行するためのプログラムコードと、過去の演出パターンとが予め記憶されている。RAM203cは、CPU203aが演出の抽選及び演出処理を実行する際に行う演算処理等を実行する際に行う演算処理等のワークエリアとして機能する。VRAM203dには、図柄表示部104に表示させるための画像データが書き込まれる。
この演出制御部203は、主制御部10より送信される演出に係る制御コマンドを示す制御信号を受信すると、この制御信号にて示された制御コマンドに基づいて抽選を行い、演出背景パターン、リーチ演出パターン、登場キャラクター等の演出を確定するとともに、当該確定した演出の制御を行う。
また、演出制御部203の出力側には、図柄表示部104が接続されており、抽選によって決定された内容のとおりに、図柄表示部104に、例えば、図柄変動の演出表示を展開する。
そして通常、CPU203aがROM203bに記憶されたプログラムコードを読み込んで、背景画像表示処理、図柄画像表示及び変動処理、キャラクター画像表示処理など各種画像処理を実行し、必要な画像データをROM203bから読み出してVRAM203dに書き込む。背景画像、図柄画像、キャラクター画像は、表示画面上において図柄表示部104に重畳表示される。
すなわち、図柄画像やキャラクター画像は背景画像よりも手前に見えるように表示される。このとき、同一位置に背景画像と図柄画像が重なる場合、Zバッファ法など周知の陰面消去法により各画像データのZバッファのZ値を参照することで、図柄画像を優先してVRAM203dに記憶させる。
演出制御部203の入力側には、上記演出ボタン117が操作されたことを検出する演出ボタン検出部220が接続されている。また演出制御部203の出力側には、スピーカ277が接続されており、演出制御部203において確定したとおりに、音声が出力されるようにしている。
また演出制御部203の出力側には、ランプ制御部205を備えている。
ランプ制御部205は、演出制御部203より送信された制御信号にて示された制御コマンドに基づきROM205bから読み込んだプログラムを作動させて演出処理を実行するCPU205aと、上記プログラムコード及び各種演出パターンデータを記憶するROM205bと、CPU205aの演算処理時におけるデータのワークエリアとして機能するRAM205c等を備えている。ランプ制御部205は、ランプ262、演出ライト111a及び111b、演出役物作動装置254を制御する。演出役物作動装置254は、演出役物115等の、演出用の役物を作動させるモータやソレノイド等によって構成されている。
ランプ制御部205は、遊技盤101や台枠等に設けられている各種ランプ262に対する点灯制御等を行い、また、演出ライト111a及び111bをそれぞれ構成する複数のライト112に対する点灯制御等を行い、各ライト112からの光の照射方向を変更するためにモータに対する駆動制御等を行う。
また、ランプ制御部205は、演出制御部203より送信された制御信号にて示された制御コマンドに基づき、演出役物115を動作させる演出役物作動装置254のソレノイドや、瞼部116を動作させる演出役物作動装置254のモータに対する駆動制御等を行う。
賞球制御部204は、主制御部10と送受信可能に接続されている。賞球制御部204は、ROM204bに記憶されたプログラムコードに基づき、賞球制御を行う。この賞球制御部204は、ROM204bに記憶されたプログラムを作動して賞球制御の処理を実行するCPU204aと、CPU204aの演算処理時におけるデータのワークエリアとして機能するRAM204c等を備えている。
賞球制御部204は、接続される払出部291に対して、各入球口(第1始動口105、第2始動口120、普通入賞口107、第1大入賞口109c、第2大入賞口129c)に入球した遊技球に対応した賞球数を払い出す制御を行う。また、賞球制御部204は、発射部292に対する遊技球の発射の操作を検出し、遊技球の発射を制御する。発射部292は、遊技のための遊技球を発射するものであり、遊技者による遊技操作を検出するセンサ(図示せず)と、遊技球を発射させるソレノイド等(図示せず)を備えている。賞球制御部204は、発射部292のセンサにより遊技操作を検出すると、検出された遊技操作に対応してソレノイド等を駆動させて遊技球を間欠的に発射させ、遊技盤101の遊技領域103に遊技球を送り出す。
払出部291は、遊技球の貯留部から所定数を払い出すためのモータ等からなる。
ここで、上記構成の演出制御部203、賞球制御部204、及びランプ制御部205を総称して「周辺部30」とする。また、主制御部10と、演出制御部203と、賞球制御部204と、ランプ制御部205とは、それぞれ異なるプリント基板(例えば、主制御部10は主制御基板、演出制御部203は演出制御基板、賞球制御部204は賞球制御基板、ランプ制御部205はランプ制御基板)に搭載されている。これらのうち、演出制御基板、賞球制御基板、及びランプ制御基板を総称して「周辺基板」とする。なお、ランプ制御部205は、演出制御部203と同一のプリント基板上に搭載することもできる。また、賞球制御部204は、主制御部10と同一のプリント基板上に搭載することもできる。
[遊技機の認証に関する構成]
次に、上記構成のパチンコ遊技機1が不正防止のために有する認証機能を実現する手段について、図面を参照しながら説明する。本実施の形態に係るパチンコ遊技機1の認証機能は、中間部20が主制御部10から送信された制御コマンドの正当性を認証することで、主制御部の認証を行うことによって実現される。つまり、パチンコ遊技機1は、主制御部から送信されてきた制御コマンドが正当なものであれば、主制御部も正当なものであると判断するのである。なお、本実施の形態では、中間部20で得られた認証結果は、周辺部30のうち演出制御部203へ送信され、演出制御部203が認証結果に応じた処理を行うこととして説明する。
具体的には、主制御部10が、1個前に中間部20を介して演出制御部203に送信した制御コマンドを用いて生成した誤り検査値を、今回送信する制御コマンドに付加して中間部20に送信する。中間部20は、1個前に受信した制御コマンドから生成した誤り検査値と、今回受信した制御コマンドに付加された誤り検査値とを照合して、これらが一致した場合は、今回および前回送信された制御コマンドの正当性が認証され、主制御部10の認証が成功したと判断する。中間部20は、認証結果を、演出制御部203へ送信する。演出制御部203は、中間部20から送信された認証結果を確認し、認証結果に応じた処理を行う。
図3は、本発明の一実施形態に係るパチンコ遊技機1を構成する主制御部10の認証処理に関する構成を示す機能ブロック図である。主制御部10は、制御コマンド出力部500と、誤り検査値生成部510と、付加部540と、送信部550とを備えている。さらに、誤り検査値生成部510は、誤り検査値演算部520と、誤り検査値記憶部530とから構成される。主制御部10を構成する各機能ブロックは、図2に示す、CPU10a、ROM10b、RAM10cおよび生成送信回路10gの各手段を適宜組み合わせて構成される。
制御コマンド出力部500は、演出制御部203によって行われる遊技処理の内容を指示するために、演出制御部203に今回送信する制御コマンドを生成し、誤り検査値生成部510および付加部540に出力する。制御コマンド出力部500の機能を実現する具体的な手段は、図2に示すCPU10aの一部、ROM10bの一部、およびRAM10cの一部から構成することができる。より具体的には、CPU10aは、RAM10cをワークエリアとして、ROM10bに予め記憶されているプログラムに基づき、今回出力すべき制御コマンドを決定し、出力する。
誤り検査値生成部510は、制御コマンド出力部500から出力された今回送信する制御コマンドを用いて誤り検査値を生成する。さらに、誤り検査値生成部510は、制御コマンド出力部500から前回出力された制御コマンド、すなわち、演出制御部203に前回送信された制御コマンドを用いて生成された誤り検査値を付加部540に送る。
具体的には、誤り検査値生成部510を構成する誤り検査値演算部520は、制御コマンド出力部500から送られた、演出制御部203に今回送信する制御コマンドを用いて誤り検査値を生成し、生成した誤り検査値を誤り検査値生成部510を構成する誤り検査値記憶部530に送る。検査値演算部520の機能を実現する具体的な手段は、図2に示す生成送信回路10gから構成することができる。
なお、本実施形態において、「制御コマンドを用いて誤り検査値を生成する」とは、制御コマンドの具体的な値である制御コマンドデータを用いて、誤り検査値を生成することである。本実施形態において、特に言及しない限りにおいて「制御コマンド」という言葉には、制御コマンドデータの意味が含まれるものとする。また、「前回送信した制御コマンドを用いて生成された誤り検査値」を単に「前回送信した制御コマンドの誤り検査値」ともいう。
また、本実施形態において誤り検査値の生成方法は、特に制限されず、例えば、チェックサム方式、CRC方式、奇数パリティ方式、偶数パリティ方式、群計数チェック方式、垂直パリティ方式、垂平パリティ方式、またはハミング符号方式等の公知の方式を用いることができる。
誤り検査値記憶部530は、誤り検査値生成部520が生成した誤り検査値のうち、今回送信する制御コマンドを用いて生成した誤り検査値および前回送信した制御コマンドを用いて生成した誤り検査値の少なくとも2つを記憶する。また、誤り検査値記憶部530は、前回送信した制御コマンドを用いて生成した誤り検査値を付加部540に送る。検査値記憶部530の機能を実現する具体的な手段は、図2に示す生成送信回路10gから構成することができる。
付加部540は、制御コマンド出力部500から出力された今回送信する制御コマンドに、誤り検査値記憶部530から送られた前回送信した制御コマンドを用いて生成された誤り検査値を付加して、中間部20へと送信する制御コマンド情報を生成する。付加部540の機能を実現する具体的な手段は、図2に示す生成送信回路10gから構成することができる。
ここで、制御コマンド情報とは、主制御部10から中間部20へと送信される制御信号の総称であり、制御コマンド(制御コマンドデータ)、それに付加された誤り検査値を含んでいる。以下、誤り検査値付き制御コマンドを制御コマンド情報ともいう。図4に、本実施形態における制御コマンド情報の形式を示す。図4に示すように、制御コマンド情報は、基本的に、制御コマンドにその1つ前に送信された制御コマンドの誤り検査値を付加した形式になっている。ただし、最初に送信される制御コマンド1には所定の初期値が付加されている。初期値としては特に制限されず、予め決められた誤り検査値のダミーデータや、主制御基板に固有のIDといった遊技機固有のID等を用いることができる。そして、2番目に送信される制御コマンド2には、最初に送信された制御コマンド1の誤り検査値1が付加され、制御コマンド情報が生成される。同様に、3番目に送信される制御コマンド3には、2番目に送信される制御コマンド2の誤り検査値2が付加され、制御コマンド情報が生成される。以下、同様にして制御コマンド情報が生成される。
送信部550は、今回送信する制御コマンドに前回送信した制御コマンドの誤り検査値を付加して生成された制御コマンド情報を中間部20へと送信する。送信部550の機能を実現する具体的な手段は、図2に示す生成送信回路10gから構成することができる。
次に、認証処理時における主制御部10の各構成部の処理について説明する。図5は、主制御部の認証に関する処理を示すシーケンス図である。
パチンコ遊技機1の電源が投入され、主制御部10のCPU10aが初期設定処理を行った後、主制御部10を構成する制御コマンド出力部10は、制御コマンドの出力を開始する。なお、上述のように最初に送信される制御コマンドには誤り検査値に替えて所定の初期値が付加される。
ステップS31において、制御コマンド出力部500は、中間部20に今回送信する制御コマンドを生成し、誤り検査値生成部510および付加部540に出力する。
制御コマンド出力部500から出力された制御コマンドを受信した誤り検査値生成部510は、ステップS32において、受信した今回送信する制御コマンドを用いて誤り検査値を生成する。続いて、ステップS33において、誤り検査値生成部510は、生成した誤り検査値を保存する。続いて、ステップS34において、誤り検査値生成部510は、予め保存してある前回送信した制御コマンドの誤り検査値を付加部540に出力する。
次に、ステップS35において、付加部540は、ステップS31で制御コマンド出力部500から出力された今回送信する制御コマンドに、ステップS34で誤り検査値生成部510から出力された前回送信した制御コマンドを用いて生成された誤り検査値を付加して制御コマンド情報を生成し、送信部550へ送る。続いて、ステップS36において、送信部550は、付加部540から受け取った制御コマンド情報を中間部20へと送信する。
なお、本実施形態では、誤り検査値生成部510が、今回送信する制御コマンドの誤り検査値を生成(ステップS32)し、生成した誤り検査値を保存(ステップS33)した後に、前回送信した制御コマンドの誤り検査値を付加部540に出力(ステップS34)するとしたが、これに限定されない。例えば、誤り検査値生成部510が、前回送信した制御コマンドの誤り検査値を付加部540に出力(ステップS34)した後に、今回送信する制御コマンドの誤り検査値を生成(ステップS32)し、生成した誤り検査値を保存(ステップS33)するようにしてもよい。
次に、主制御部10から中間部20を介して演出制御部203に対して送信される制御コマンドの種別について図6を用いて説明する。なお、図6は、本発明の実施の形態に係るパチンコ遊技機1を構成する主制御部10が出力する制御コマンドの種別の一例を示す図であって、図6に示された制御コマンドの種別に限定されるものではない。
主制御部10から中間部20を介して演出制御部203へ送信される制御コマンドは、1コマンドが2バイトのデータで構成されており、制御コマンドの分類を識別するための1バイトのMODEの情報と、各制御コマンドの詳細な制御内容を示す1バイトのDATAの情報とから構成されている。MODEの情報とDATAの情報は、主制御部10のROM10bに予め記憶されている。なお、本実施形態では、制御コマンドには前回送信された制御コマンドの誤り検査値が付加され、制御コマンド情報として中間部20に送信される。以下の説明において、「制御コマンドを送信する」との表現には、制御コマンドに誤り検査値を付加して制御コマンド情報を生成し、この制御コマンド情報を中間部20に送信することが含まれる。
「電源投入コマンド」は、パチンコ遊技機1の電源が投入されたことを示すものであり、「MODE」が「E1H」で設定され、「DATA」が「00H」に設定されている。
この電源投入コマンドは、パチンコ遊技機1の電源が投入されたときに中間部20へ送信される。具体的には、パチンコ遊技機1の電源が投入されたとき、主制御部10を構成する制御コマンド出力部500は、誤り検査値生成部510および付加部540に電源投入コマンドを出力する。この電源投入コマンドは、最初に出力された制御コマンドなので、付加部540は、制御コマンドから生成した誤り検査値に替えて、予め記憶されている初期値を電源投入コマンドに付加して制御コマンド情報を生成し、送信部550は、この制御コマンド情報を送信する。
「客待ちデモコマンド」は、パチンコ遊技機1が非遊技状態における客待ちのデモ画面を表示させることを示すものであり、「MODE」が「E2H」で設定され、「DATA」が「00H」に設定されている。
この客待ちデモコマンドは、電源投入時に表示される初期演出表示としてデモが開始されてから、又は後述する未抽選入賞回数がゼロとなりデモが開始されてから、所定時間経過したときに中間部20へ送信される。
「図柄変動パターンコマンド」は、パチンコ遊技機1の始動口(第1始動口105又は第2始動口125)に遊技球が入賞し、図柄表示部104にて入賞抽選結果に応じた図柄の変動態様を示すものであり、「MODE」が「E3H」で設定され、各種の変動パターンに合わせてDATAの情報が設定されている。
この図柄変動パターンコマンドは、入賞抽選時の大当たり判定後の各種の図柄変動パターンの決定時に中間部20へ送信される。具体的には、入賞抽選時に取得した大当たり判定用乱数が予め設定された大当たり判定テーブルのいずれかの乱数値と対応するかが判断され、各種の図柄変動パターンが決定されて図柄変動が開始されたときに、決定された図柄変動パターンに対応する図柄変動パターンコマンドが中間部20へ送信される。
「図柄停止コマンド」は、図柄変動を停止表示させることを示すものであり、「MODE」が「E4H」で設定され、「DATA」が「00H」に設定されている。
この図柄停止コマンドは、図柄変動が開始され図柄変動時間が経過した後に演出制御部203へ送信される。具体的には、図柄変動が開始された後、予め設定された図柄変動時間が経過したため図柄変動を停止させるときに中間部20へ送信される。
「大当たり開始コマンド」は、各種の大当りが開始することを示すものであり、「MODE」が「E5H」で設定され、大当たりの種別に合わせてDATAの情報が設定されている。
この大当たり開始コマンドは、各種の大当りが開始するときに、大当たりの種別に対応する大当たり開始コマンドが中間部20へ送信される。具体的には、大当たり遊技処理の開始のときに、大当たりの種別に対応する大当たり開始コマンドが中間部20へ送信される。
「大当たりコマンド」は、各種大当りの種別に合わせた大当たりのラウンド数を示すものであり、「MODE」が「E6H」で設定され、大当たりのラウンド数に合わせてDATAの情報が設定されている。
この大当たりコマンドは、大当りラウンドが開始されるときに、開始されたラウンド数に対応する大当たりコマンドが中間部20へ送信される。具体的には、第1大入賞口開閉扉109a又は第2大入賞口開閉扉129aを開放させるときに、開放させるときのラウンド数に対応する大当たりコマンドが中間部20へ送信される。
「大当たり終了コマンド」は、各種の大当りが終了したことを示すものであり、「MODE」が「E7H」で設定され、大当たりの種別に合わせてDATAの情報が設定されている。
この大当たり終了コマンドは、各種の大当りが終了するときに、大当たりの種別に対応する大当たり終了コマンドが中間部20へ送信される。具体的には、大当り遊技終了処理の開始のときに、大当たりの種別に対応する大当たり終了コマンドが中間部20へ直ちに送信される。
図7は、本発明の一実施形態に係るパチンコ遊技機1を構成する中間部20の認証処理に関する構成を示す機能ブロック図である。中間部20は、受信部600と、誤り検査値生成部610と、誤り検査部640と、付加部650と、送信部660とを備えている。さらに、誤り検査値生成部610は、誤り検査値演算部620と、誤り検査値記憶部630とから構成される。中間部20を構成する各機能ブロックは、図2に示す、CPU20a、ROM20b、およびRAM20c等の各手段を適宜組み合わせて構成される。
受信部600は、受信データ用記憶領域を有し、主制御部10から受信した制御コマンド情報を受信データ用記憶領域に書き込む。また、受信部600は、受信した制御コマンド情報に含まれる今回受信した制御コマンドを誤り検査値生成部610および付加部650へ、今回受信した制御コマンドに付加された誤り検査値を誤り検査部640へと出力する。受信部600の機能を実現する具体的な手段は、図2に示すCPU20aの一部、ROM20bの一部、およびRAM20cの一部等から構成することができる。より具体的には、CPU20aは、RAM20cをワークエリアとして、ROM20bに予め記憶されているプログラムに基づき、今回受信した制御コマンド情報から抽出した制御コマンドを誤り検査値生成部610へ、誤り検査値を誤り検査部640へと送信する。
誤り検査値生成部610は、受信部600から送られた今回受信した制御コマンドを用いて誤り検査値を生成する。さらに、誤り検査値生成部610は、受信部600から前回送られた制御コマンド、すなわち、中間部20が前回受信した制御コマンドを用いて生成された誤り検査値を誤り検査部640に送る。
具体的には、誤り検査値生成部610を構成する誤り検査値演算部620は、受信部600から送られた、中間部20が今回受信した制御コマンドを用いて誤り検査値を生成し、生成した誤り検査値を、誤り検査値生成部610を構成する誤り検査値記憶部630に送る。誤り検査値演算部620の機能を実現する具体的な手段は、図2に示すCPU20aの一部、ROM20bの一部、およびRAM20cの一部等から構成することができる。なお、本実施形態において、誤り検査値の生成方法は、主制御部10の誤り検査値生成部510が行う誤り検査値生成方法と同一であればよく、誤り検査値生成部510が行う誤り検査値生成方法と同様に特に制限されず、上述の各種の方法を適用することができる。
誤り検査値記憶部630は、誤り検査値演算部620が生成した誤り検査値のうち、今回受信した制御コマンドを用いて生成された誤り検査値および前回受信した制御コマンドを用いて生成された誤り検査値の少なくとも2つを記憶する。また、誤り検査値記憶部630は、前回受信した制御コマンドを用いて生成された誤り検査値を誤り検査部640に送る。検査値記憶部630の機能を実現する具体的な手段は、図2に示すCPU20aの一部、ROM20bの一部、およびRAM20cの一部等から構成することができる。
誤り検査部640は、受信部600から送られた今回受信した制御コマンドに付加された誤り検査値と、誤り検査値記憶部630から送られた前回受信した制御コマンドを用いて生成された誤り検査値とを用いて誤り検査を行う。すなわち、誤り検査部640は、今回受信した誤り検査値が付加された制御コマンド、および今回の誤り検査値を生成元である前回受信した制御コマンドの正当性を認証する認証処理を行う。また、誤り検査部640は認証結果を認証結果データとして付加部650に出力する。誤り検査部640の機能を実現する具体的な手段は、図2に示すCPU20aの一部、ROM20bの一部、およびRAM20cの一部等から構成することができる。
付加部650、受信部600から出力された、今回中間部20で受信した制御コマンドに、誤り検査部640から出力された認証結果データを付加して、演出制御部203へ送信する認証結果データ付き制御コマンドを生成する。また、付加部650は、生成した認証結果データ付き制御コマンドを送信部660に出力する。付加部650の機能を実現する具体的な手段は、図2に示すCPU20aの一部、ROM20bの一部、およびRAM20cの一部等から構成することができる。
送信部660は、付加部650から出力された認証結果データ付き制御コマンドを演出制御部203へと送信する。送信部550の機能を実現する具体的な手段は、図2に示すCPU20aの一部、ROM20bの一部、およびRAM20cの一部等から構成することができる。
次に、認証処理における中間部20の各構成部の処理について説明する。図8は、中間部20の認証に関する処理を示すシーケンス図である。
パチンコ遊技機1の電源が投入され、主制御部10のCPU10aが初期設定処理を行った後、主制御部10を構成する制御コマンド出力部500は、制御コマンドの出力を開始し、中間部20に誤り検査値付き制御コマンドである制御コマンド情報を送信する。なお、上述のように最初に送信される制御コマンドには誤り検査値に替えて所定の初期値が付加される。
ステップS41において、受信部600は、誤り検査値付き制御コマンドである制御コマンド情報を受信して、受信データ用記憶領域に書き込む。続いて、ステップS42において、受信部600は、受信した誤り検査値付き制御コマンドの制御コマンドを誤り検査値生成部610および付加部650に、誤り検査値を誤り検査部640に出力する。
受信部600から今回受信した制御コマンドを受信した誤り検査値生成部610は、ステップS43において、今回受信した制御コマンドを用いて誤り検査値を生成する。続いて、ステップS44において、誤り検査値生成部610は、生成した誤り検査値を保存する。続いて、ステップS45において、誤り検査値生成部610は、予め保存してある前回受信した制御コマンドの誤り検査値を誤り検査部640に出力する。
次に、ステップS46において、誤り検査部640は、ステップS42で受信部600から出力された今回受信した制御コマンドに付加された誤り検査値と、ステップS45で誤り検査値生成部610から出力された前回受信した制御コマンドを用いて生成された誤り検査値とを用いて誤り検査を行う。具体的には、誤り検査部640は、上記2つの誤り検査値を照合し、同一の値であるかを検証する。同一の場合は、誤り検査部640は、今回および前回受信した制御コマンドの正当性を認証する。非同一の場合は、誤り検査部640は、制御コマンドに正当性がなく、誤りがあると判断する。なお、最初に受信した制御コマンドには誤り検査値に替えて所定の初期値が付加されるので、誤り検査部640は、同様に所定の初期値を用いて誤り検査を行う。
次に、ステップS47において、誤り検査部640は、誤り検査の結果、すなわち認証結果である認証結果データを付加部650に出力する。続いて、ステップS48において、付加部650は、ステップS42で受信部600から出力された今回受信した制御コマンドに、誤り検査部640から出力された認証結果データを付加して、認証結果データ付き制御信号を生成し、送信部660に出力する。続いて、ステップS49において、送信部660は、付加部650から出力された認証結果データ付き制御コマンドを演出制御部203へ送信する。
なお、本実施形態では、誤り検査値生成部610が、今回受信した制御コマンドの誤り検査値を生成(ステップS43)し、生成した誤り検査値を保存(ステップS44)した後に、前回受信した制御コマンドの誤り検査値を誤り検査部640に出力(ステップS45)するとしたが、本発明はこれに限定されない。例えば、誤り検査値生成部610が、前回受信した制御コマンドの誤り検査値を誤り検査部640に出力(ステップS45)した後に、今回受信した制御コマンドの誤り検査値を生成(ステップS43)し、生成した誤り検査値を保存(ステップS44)するようにしてもよい。
[遊技機の動作処理]
次に、上記構成のパチンコ遊技機1の動作処理について、図面を参照して説明する。以下、主制御部10による中間部20への制御コマンドの送信を含む動作処理について、図9に示すフローチャートを参照して説明する。主制御部10の構成部であるCPU10aは、図示しないパルス発生部より出力されるクロック信号に基づいて、所定の周期(例えば4ミリ秒)ごとに制御コマンドの実行等の処理を行う。なお、以下の説明では、各制御コマンドの送信処理には、制御コマンドに誤り検査値(または初期値)を付加して制御コマンド情報を生成し、生成した制御コマンド情報を送信する処理を含む。この制御コマンド送信処理の詳細については後述する。
ステップS1において、まず、主制御部10は、パチンコ遊技機1の電源投入に伴う初期設定処理を実行した後、ステップS2へ進む。なお、パチンコ遊技機1に電源が投入された際には、周辺基板が主制御基板から受信する制御コマンドを確実に取り込むために、周辺基板が立ち上がってRAM領域の初期化を行い、待機状態となった後、主制御基板が立ち上がるように構成されている。主制御部10は、初期設定処理として、例えば、スタックポインタに予め決められた所定値を設定するとともに、演出制御部203が待機状態になることを待つために、一定時間(例えば、約1秒間)だけ待機する。
ステップS2において、制御コマンド出力部500は、図6に示す電源投入コマンドを付加部540に出力し、付加部540で初期値が付加された電源投入コマンド(図4参照)を送信部550が中間部20へ送信する。電源投入コマンドを送信した後、主制御部10は、ステップS3へ進む。中間部20を介して電源投入コマンドを受信すると、演出制御部203は、図柄表示部104やランプ制御部205のそれぞれに対して電源投入時の演出用の制御コマンド、具体的には、遊技機が非遊技状態における客待ちのデモ画面を表示するための客待ちデモコマンド、あるいは、ランプの点灯等を行うための制御コマンドを送信する。
なお、電源投入コマンドは、電源投入後に電源投入に伴う処理を実行させるための制御コマンドを示し、各制御基板が立ち上がった後に、主制御部10から中間部20を介して演出制御部203へ送信される制御コマンドであって、電源投入後の立ち上げ時における遊技を制御するための初期制御情報、例えば、制御モード、バックアップデータ等を送信するための制御コマンド、あるいは初期演出表示の制御を行うための制御コマンド、各種のデモ表示を開始させるための制御コマンドである。また、この電源投入コマンドは遊技機のリセットボタンを押圧したときにも実行される、上記制御モード、バックアップデータ等を送信するための制御コマンドも含む。
ステップS3において、主制御部10は、RAM10cに記憶されている未抽選入賞回数データを参照して、未抽選入賞回数が0回であるか否かを判断する。ここで、未抽選入賞回数とは、第1始動口検出部221又は第2始動口検出部225で検出された遊技球の数(入賞回数)から、当該遊技球の入球に対応する抽選が行われた回数(既抽選回数)を減じた数である。ステップS3の判断結果が「NO」の場合、すなわち、未抽選入賞回数が0回でない場合には、主制御部10は、後述するステップS10へ進む。一方、ステップS3の判断結果が「YES」の場合、すなわち、未抽選入賞回数が0回である場合には、主制御部10は、ステップS4へ進む。
ステップS4において、主制御部10は、電源投入時のデモが開始されてから経過した時間を計測した後、ステップS5へ進む。
ステップS5において、主制御部10は、電源投入時のデモが開始されてから所定時間が経過したか否かを判断する。ステップS5の判断結果が「YES」の場合、すなわち、電源投入時のデモが開始されてから所定時間が経過した場合には、主制御部10は、ステップS6へ進む。なお、上記電源投入時のデモを開始するための制御コマンドは、客待ちデモコマンドとしてもよい。
ステップS6において、主制御部10は、客待ちデモコマンドを中間部20へ送信した後、ステップS7へ進む。中間部20を介して客待ちデモコマンドを受信すると、演出制御部203は、図柄表示部104やランプ制御部205のそれぞれに対して客待ちデモ演出用の制御コマンドを送信する。
一方、ステップS5の判断結果が「NO」の場合、すなわち、電源投入時のデモ(又は客待ちデモ)が開始されてから所定時間が経過していない場合には、主制御部10は、ステップS7へ進む。
ステップS7において、主制御部10は、第1始動口検出部221で第1始動口105への遊技球の入球が検出されたか又は第2始動口検出部225で第2始動口120への遊技球の入球が検出されたか否かを判断する。ステップS7の判断結果が「YES」の場合、すなわち、第1始動口検出部221で第1始動口105への遊技球の入球が検出されたか又は第2始動口検出部225で第2始動口120への遊技球の入球が検出された場合には、主制御部10は、ステップS8へ進む。
一方、ステップS7の判断結果が「NO」の場合、すなわち、第1始動口検出部221で第1始動口105への遊技球の入球が検出されず、かつ、第2始動口検出部225で第2始動口120への遊技球の入球が検出されない場合には、主制御部10は、ステップS4へ戻り、ステップS4以降の処理を繰り返す。
ステップS8において、主制御部10は、客待ちデモ(又は電源投入時のデモ)が開始されてから計測していた時間をクリアした後、ステップS9へ進む。
ステップS9において、主制御部10は、未抽選入賞回数に1を加算する。なお、第1始動口検出部221又は第2始動口検出部225で複数の遊技球の入球が検出された場合、このステップS9では、主制御部10は、未抽選入賞回数に入球に相当する数を加算する。そして、主制御部10は、ステップS10へ進む。
ステップS10において、主制御部10は、予め用意された乱数カウンタ(例えば、0〜255をカウント)から1つの大当たり判定用乱数を無作為に取得した後、ステップS11へ進む。
ステップS11において、主制御部10は、未抽選入賞回数から1を減算した後、ステップS12へ進む。
ステップS12において、主制御部10は、例えば、予めデータ記憶部510に記憶されている大当り判定データテーブルを参照して、ステップS10の処理で取得した大当たり判定用乱数が、この大当り判定データテーブルに記憶されている大当たりの乱数値であるか否かを判断する。また、ステップS12では、主制御部10は、取得した大当たり判定用乱数がはずれの乱数の場合には、例えば、大当り判定データテーブルを参照して、さらに「リーチ有りのはずれ」又は「リーチ無しのはずれ」であるかについても判断する。ステップS12の判断結果が「YES」の場合、すなわち、ステップS10で取得した大当たり判定用乱数が予め定められた大当たり乱数である場合には、主制御部10は、ステップS13へ進む。
ステップS13において、主制御部10は、例えば、大当たりの種別コード(通常当りか確率変動当りか等)、リーチ有り、図柄変動時間、等の「MODE]の情報を含む図柄変動コマンド(大当たりリーチコマンド)を送信部520にセットし、中間部20へ送信した後、ステップS14へ進む。
ステップS14において、主制御部10は、図柄変動時間が経過したか否かを判断する。ステップS14の判断結果が「NO」の場合、すなわち、図柄変動時間が経過していない場合には、主制御部10は、同判断を繰り返す。そして、図柄変動時間が経過すると、ステップS14の判断結果が「YES」となり、主制御部10は、ステップS15へ進む。
ステップS15において、主制御部10は、図柄停止コマンドを中間部20へ送信した後、ステップS16へ進む。
ステップS16において、主制御部10は、大当たり開始コマンドを中間部20へ送信した後、ステップS17へ進む。
ステップS17において、主制御部10は、大当たり中の各ラウンドに対応するコマンド(大当たりコマンド)を中間部20に順次送信し、すべてのラウンドの大当たりコマンドの送信を終了した後、ステップS18へ進む。
ステップS18において、主制御部10は、大当たり終了コマンドを中間部20へ送信した後、ステップS22へ進む。
一方、ステップS12の判断結果が「NO」の場合、すなわち、ステップS10の処理で取得した大当たり判定用乱数が予め定められた大当たり乱数でない場合には、主制御部10は、ステップS19へ進む。
ステップS19において、主制御部10は、「リーチ有りのはずれ」の場合には「リーチ有りのはずれ」に対応する図柄変動パターンコマンド(はずれリーチコマンド)を、「リーチ無しのはずれ」の場合には「リーチ無しのはずれ」に対応する図柄変動パターンコマンド(はずれコマンド)を中間部20へ送信した後、ステップS20へ進む。
ステップS20において、主制御部10は、図柄変動時間が経過したか否かを判断する。ステップS20の判断結果が「NO」の場合、すなわち、図柄変動時間が経過していない場合には、主制御部10は、同判断を繰り返す。そして、図柄変動時間が経過すると、ステップS20の判断結果が「YES」となり、主制御部10は、ステップS21へ進む。
ステップS21において、主制御部10は、図柄停止コマンドを中間部20へ送信した後、ステップS22へ進む。
ステップS22において、主制御部10は、パチンコ遊技機1の電源がオフにされたか否かを判断する。ステップS22の判断結果が「NO」の場合、すなわち、パチンコ遊技機1の電源がオフにされていない場合には、主制御部10は、ステップS3へ戻り、ステップS3以降の処理を繰り返す。
一方、ステップS22の判断結果が「YES」の場合、すなわち、パチンコ遊技機1の電源がオフにされた場合には、主制御部10は、ステップS23へ進む。
ステップS23において、主制御部10は、中間部20に終了処理コマンドを演出制御部203へ送信した後、本フローチャートによる処理を終了する。
以下、図9に示す、ステップS6の客待ちデモコマンド、ステップS13およびS19の図柄変動パターンコマンド、ステップS15およびS21の図柄停止コマンド、ステップS16の大当り開始コマンド、ステップS17の大当りコマンド、ならびにステップS18の大当り終了コマンドの各制御コマンド送信処理の手順について説明する。
図10は、主制御部10による制御コマンド送信処理の手順の一例を示すフローチャートである。
図9に示す、主制御部10のメイン処理において制御コマンドの送信タイミングになったら、ステップS51において、誤り検査値生成部510は、制御コマンド出力部500から出力された今回送信する制御コマンドの誤り検査値を生成し、ステップS52へと進む。
ステップS52において、誤り検査値生成部510は、生成した誤り検査値を保存し、ステップS53へと進む。本実施形態においては、誤り検査値生成部510は、前回送信した制御コマンドの誤り検査値と、今回送信した制御コマンドの誤り検査値との2つの誤り検査値を記憶しておけばよい。
ステップS53において、付加部540は、誤り検査値生成部510に保存されている前回送信した制御コマンドの誤り検査値を受け取って、今回送信する制御コマンドに付加して制御コマンド情報を生成し、ステップS54へ進む。
ステップS54において、送信部550は、付加部540が生成した制御コマンド情報を受け取って中間部20に送信した後、本フローチャートによる処理を終了する。
なお、本実施形態では、今回送信する制御コマンドの検査値を生成するステップS51を行って、生成した誤り検査値を保存するステップS52を行った後に、制御コマンド情報を生成するステップS53を行って、制御コマンド情報を送信するステップS54を行っているが、これに限定されない。例えば、ステップS53とステップS54を行った後に、誤り検査値を生成保存するステップS51およびステップS52を行ってもよいし、ステップS53を行った後に誤り検査値を生成保存するステップS51およびステップS52を行ってもよい。この場合、誤り検査値生成部510は、少なくとも一つの誤り検査値を保存しておけばよく、誤り検査値を保存するステップS52において、既に保存されている誤り検査値に新しい誤り検査値を上書き保存するようにしてもよい。
以下、中間部20が実行する処理について、図11に示すフローチャートを参照して説明する。図11は、中間部20によるメイン処理である認証処理の手順の一例を示すフローチャートである。
パチンコ遊技機1の電源が投入され、主制御部10のCPU10aが初期設定処理を行った後、主制御部10を構成する制御コマンド出力部500は、制御コマンドの出力を開始し、中間部20に誤り検査値付き制御コマンドである制御コマンド情報を送信する。中間部20の受信部600は、誤り検査値付き制御コマンドである制御コマンド情報を受信すると、それを受信データ用記憶領域に書き込む。ステップS2001において、中間部20は、受信データ用記憶領域に制御コマンド情報が書き込まれているか否かを判断することにより、制御コマンド情報を受信したか否かを判断する。中間部20は、制御コマンド情報を受信するまで同判断を繰り返す。制御コマンド情報を受信していた場合は、ステップS2002に進む。
ステップS2002において、中間部20の受信部600は、受信した誤り検査値付き制御コマンドから誤り検査値を取得して誤り検査部640に出力する。また、中間部20の受信部600は、受信した制御コマンドを誤り検査値生成部610および付加部650に出力する。
続いて、ステップS2003において、中間部20の誤り検査値生成部610は、受信部600から出力された制御コマンドを用いて誤り検査値を生成し、保存する。
続いて、ステップS2004において、中間部20の誤り検査部640は、誤り検査値生成部610から予め保存してある前回受信した制御コマンドの誤り検査値を取得する。誤り検査部640は、受信部600から出力された今回受信した制御コマンドに付加された誤り検査値と、誤り検査値生成部610から取得した前回受信した制御コマンドを用いて生成された誤り検査値とを用いて誤り検査を行い、ステップS2005に進む。
ステップS2005において、誤り検査部640は、検査結果が正しいか否かを判断する。具体的には、誤り検査部640は、上記2つの誤り検査値を照合し、同一の値であるかを検証する。同一の場合は、誤り検査部640は、検査結果が正しいと判断し、ステップS2006へ進み、制御コマンドの正当性の認証が成功したことを示す認証結果データを生成し、付加部650へ出力する。非同一の場合は、誤り検査部640は、検査結果が正しくないと判断し、ステップS2007へ進み、制御コマンドの正当性の認証が不成功であったことを示す認証結果データを生成し、付加部650へ出力する。
続いて、ステップS2008において、付加部650は、受信部600から出力された今回受信した制御コマンドに、誤り検査部640から出力された認証結果データを付加して、認証結果データ付き制御信号を生成し、送信部660に出力する。
続いて、ステップS2009において、送信部660は、付加部650から出力された認証結果データ付き制御コマンドを演出制御部203へ送信し、本フローチャートによる処理を終了する。
以下、演出制御部203が実行する制御処理について、図12〜図15に示すフローチャートを参照して説明する。
図12は、演出制御部203によるメイン処理の手順の一例を示すフローチャートである。
ステップS1000において、演出制御部203のCPU203aは、初期設定処理を行う。この処理において、CPU203aは、電源投入に応じて、演出制御部203のROM203bからメイン処理に関するプログラムコードを読み込む。これとともに、CPU203aは、演出制御部203のRAM203cに記憶されるフラグなどを初期化し、所定値に設定する処理を行う。この処理が終了した場合には、ステップS1100へ処理を移す。
ステップS1100において、CPU203aは、演出用乱数更新処理を行う。この処理において、CPU203aは、RAM203cに記憶される演出用乱数値を更新する処理を行う。以降は、所定の割込処理が行われるまで、上記ステップS1100の処理を繰り返し行う。
図13は、演出制御部203による割込処理の手順の一例を示すフローチャートである。CPU203aは、演出制御部203に設けられたクロックパルス発生回路(図示せず)から出力されるクロック信号に基づいて、所定の周期(例えば4ミリ秒)ごとに、演出制御部203のタイマ割込処理を実行する。
ステップS1200において、演出制御部203は、CPU203aのレジスタに格納されている情報をスタック領域に退避させる。
ステップS1300において、演出制御部203は、演出制御部203で用いられる各種タイマカウンタの更新処理を行う。
ステップS1400において、演出制御部203は、コマンド解析処理を行う。この処理において、演出制御部203は、受信データ用記憶領域に書き込まれた制御コマンドの種別を解析する処理を行う。なお、コマンド解析処理の詳細については後述する。
ステップS1500において、演出制御部203は、演出ボタン検出部220の信号のチェックを行い、演出ボタン検出部220に関する演出入力制御処理を行う。
ステップS1600において、演出制御部203は、RAM203cの送信データ用記憶領域に書き込まれた制御コマンドや各種データを図柄表示部104やランプ制御部205へ送信するデータ送信処理を行う。
ステップS1700において、演出制御部203は、ステップS1200で退避した情報をCPU203aのレジスタに復帰させる。
図14は、演出制御部203によるコマンド解析処理の手順の一例を示すフローチャートである。
ステップS1401において、演出制御部203は、RAM203cの所定の記憶領域である受信データ用記憶領域に認証結果データ付き制御コマンドが書き込まれているか否かを確認して、制御コマンドを受信したか否かを判断する。そして、演出制御部203は、受信データ用記憶領域に認証結果データ付き制御コマンドが書き込まれていない場合、本フローチャートによる処理を終了し、受信データ用記憶領域に認証結果データ付き制御コマンドが書き込まれている場合、ステップS1410へ進む。
ステップS1410において、演出制御部203は、受信データ用記憶領域に書き込まれた認証結果データ付き制御コマンドから認証結果データを取得し、認証結果データ解析処理を行う。この認証結果データ解析処理の詳細については図15を用いて後に詳述する。認証結果データ解析処理が終了したらステップS1420へ進む。
ステップS1420において、演出制御部203は、受信データ用記憶領域に書き込まれている制御コマンドが、客待ちデモコマンド(図9のステップS6参照)である場合、ステップS1421へ進み、客待ちデモコマンドでない場合、ステップS1430へ進む。
ステップS1421において、演出制御部203は、客待ちデモ用の演出パターンを決定するデモ演出処理を行う。具体的には、客待ちデモ用の演出パターンを決定し、決定したデモ演出パターンに基づく演出処理コマンドをRAM203cの送信データ用記憶領域に書き込んで送信データとし、図柄表示部140やランプ制御部205へ送信させる。
ステップS1430において、演出制御部203は、受信データ用記憶領域に書き込まれている制御コマンドが、大当たり用又ははずれ用の図柄変動パターンコマンド(図9のステップS13又はステップS19参照)である場合、ステップS1431へ進み、図柄変動パターンコマンドでない場合、ステップS1440へ進む。
ステップS1431において、演出制御部203は、大当たり用又ははずれ用のそれぞれについて用意された各種変動演出パターンの中から、1つ変動演出パターンを決定する図柄変動演出処理を行う。具体的には、演出制御部203は、図11のステップS1100において更新されている演出用乱数値から1つの乱数値を取得し、取得した演出用乱数値とROM203bに予め保持する変動演出パターン決定テーブルとに基づいて、1つの変動演出パターンを決定する。そして、演出制御部203は、決定した変動演出パターンに基づく演出処理コマンドを送信データ用記憶領域に書き込んで送信データとし、図柄表示部140やランプ制御部205へ送信させる。
ステップS1440において、演出制御部203は、受信データ用記憶領域に書き込まれている制御コマンドが、図柄停止コマンド(図9のステップS15又はステップS21参照)である場合、テップS1441へ進み、図柄停止コマンドでない場合、ステップS1450へ進む。
ステップS1441において、演出制御部203は、変動態様を示す演出図柄を停止表示させるための図柄停止演出処理を行う。具体的には、演出制御部203は、図柄停止コマンドに基づく演出処理コマンドを送信データ用記憶領域に書き込んで送信データとし、図柄表示部140やランプ制御部205へ送信させる。
ステップS1450において、演出制御部203は、受信データ用記憶領域に書き込まれている制御コマンドが、大当たり開始コマンド(図9のステップS16参照)である場合、ステップS1451へ進み、大当たり開始コマンドでない場合、ステップS1460へ進む。
ステップS1451おいて、演出制御部203は、大当たり開始演出パターンを決定する大当たり開始演出処理を行う。具体的には、演出制御部203は、大当たり開始コマンドに基づいて大当たり開始演出パターンを決定し、決定した大当たり開始演出パターンに基づく演出処理コマンドを送信データ用記憶領域に書き込んで送信データとし、図柄表示部140やランプ制御部205へ送信させる。
ステップS1460において、演出制御部203は、受信データ用記憶領域に書き込まれている制御コマンドが、大当たりコマンド(図9のステップS17参照)である場合、ステップS1461へ進み、大当たりコマンドでない場合、ステップS1470へ進む。
ステップS1461おいて、演出制御部203は、ラウンド別の大当たりコマンドに対応する大当たり演出処理を行う。具体的には、演出制御部203は、各大当たりラウンドのそれぞれに対応した大当たりコマンドに基づく演出処理コマンドを送信データ用記憶領域に書き込んで送信データとし、図柄表示部140やランプ制御部205へ送信させる。
ステップS1470において、演出制御部203は、受信データ用記憶領域に書き込まれている制御コマンドが、大当たり終了コマンド(図9のステップS18参照)である場合、ステップS1471へ進み、大当たり終了コマンドでない場合、本フローチャートによる処理を終了する。
ステップS1471において、演出制御部203は、大当たり終了演出パターンを決定する大当たり終了演出処理を行う。具体的には、演出制御部203は、大当たり終了コマンドに基づいて大当たり終了演出パターンを決定し、決定した大当たり終了演出パターンに基づく演出処理コマンドを送信データ用記憶領域に書き込んで送信データとし、図柄表示部140やランプ制御部205へ送信させる。
以下、図14に示す、ステップS1410の演出制御部203による認証結果データ解析処理について、図15に示すフローチャートを参照して説明する。図15は、演出制御部203による認証結果データ解析処理の手順の一例を示すフローチャートである。
ステップS1411において、演出制御部203は、受信データ用記憶領域に書き込まれた認証結果データ付き制御コマンドから認証結果データを取得する。
続いて、ステップS1412において、演出制御部203は、取得した認証結果データが、認証成功を示す結果であるか否かを確認する。演出制御部203は、認証結果データが認証成功を示す結果である場合、今回の中間部20での認証処理が成功し、パチンコ遊技機1の正当性を認証することができたと判断して、本フローチャートによる処理を終了する。一方、演出制御部203は、認証結果データが認証不成功を示す結果である場合、今回の中間部20での認証処理が不成功であり、パチンコ遊技機1で不正行為や通信エラーが発生したおそれがあると判断し、ステップS1413へ進む。
ステップS1413において、パチンコ遊技機1で不正行為や通信エラーが発生したおそれがあると判断された場合、演出制御部203は、その旨を報知する為に報知信号を出力し、本フローチャートによる処理を終了する。
演出制御部203は、生成した報知信号を、例えば、図柄表示部104やランプ制御部205、あるいはパチンコ遊技機1を管理するセンター制御装置などへ送信する。図柄表示部104やランプ制御部205等は、受信した報知信号に基づいて、パチンコ遊技機1で不正行為や通信エラーが発生したおそれがある旨を報知する演出を実行する。この演出は、例えば、図柄表示部104に通常出現しないキャラクターを出現させたり、通常出現するキャラクターを通常とは異なる方法で出現させるなどである。また、図柄表示部104の輝度を変えたり、色を変えたり、ランプ制御部205に対して所定のランプを表示制御するようにしてもよい。いずれにせよ、遊技店の従業員が当該パチンコ遊技機1の前を通過した際に、その状態に気付くようにしてあればよい。また、この演出は、顧客がその状態に気付かないような演出でもよく、また、顧客が容易に気付く演出であってもよい。顧客が容易に気付く演出にすれば、不正行為を効率的に抑止することができる。
また、報知信号に「大当たり中」や「確率変動中」などのパチンコ遊技機1の遊技状態に関する情報を含めてもよい。これらの遊技状態に関する情報に基づいて、パチンコ遊技機1を管理するセンター制御装置などによって不正行為が行われているか否かの判断を行ってもよい。例えば、大当たり中や確率変動中は入賞が集中していても正常である場合がある。よって、大当たり中や確率変動中は、その他の状態とは異なる条件で不正行為のおそれがあるか否かについて判断するのがよい。また、遊技状態に関する情報は、報知信号に含めずに別信号として出力するようにしてもよい。この場合、従業員は、報知信号と遊技状態に関する情報の両方に基づいて、不正行為のおそれがあるか否かについて判断する。
なお、主制御部10と賞球制御部204との間に中間部20を設けた場合の認証処理は、主制御部10と演出制御部203との間に中間部20を設けた場合の認証処理とほぼ同様の手順で行われるため説明を省略する。
以上のように、本実施形態では、主制御部10は、制御コマンドの誤り検査値を生成し保存している。そして主制御部10は、今回送信する制御コマンドに前回送信した制御コマンドの誤り検査値を付加して制御コマンド情報として中間部20に送信する。一方、中間部20は、受信した制御コマンドの誤り検査値を生成し保存している。そして中間部20は、今回受信した制御コマンド情報に含まれる誤り検査値と、前回受信した制御コマンドの誤り検査値とを照合して誤り検査を行う。
すなわち、本発明に係る遊技機は、過去に送信した制御コマンドの誤り検査値を今回送信する制御コマンドに付加して、主制御部10から中間部20に送信している。
通常チェックサム等の誤り検査値は生成元の制御コマンドに付加されて通信エラーチェックに利用される。これに対して、本実施形態の遊技機1は、上述のように、前回送信した制御コマンドの誤り検査値を、今回送信する制御コマンドに付加する。このような従来にない新規かつ簡易な手法を用いることにより、不正者が制御コマンドと誤り検査値を不正に搾取しても制御コマンドと誤り検査値の関係を容易に知ることができない。したがって、本実施形態によれば、不正者による不正を防止することができ、セキュリティ強度を向上させることができる。
また、主制御部10が前回送信した制御コマンドの誤り検査値を、今回送信する制御コマンドに付加して送信し、中間部20が認証処理を行うことにより、今回受信した制御コマンドの正当性を認証するとともに、前回受信した制御コマンド、すなわち、今回付加された誤り検査値の生成元となった制御コマンドの正当性をも認証することができる。すなわち、制御コマンドの連続性を認証することができる。
また、本実施形態では、各制御コマンドに誤り検査値を付加して主制御部10から中間部20に送信し、中間部20が各制御コマンド毎に認証処理を行うので、常時不正を検査することができる。
また、本実施形態の遊技機1は、通常は通信エラーチェックに用いる誤り検査値を不正を検出するための検査値として利用している。このように通信エラーチェックに従来から用いている誤り検査値を用いることで、誤り検査値を行うための検査値を別に生成するための手段を設けることなく、簡単な構成で不正者による不正を防止することができ、セキュリティ強度を向上させることができる。すなわち、遊技機の主制御基板のリソースが限られているという状況下において、セキュリティ強度を向上させつつ、主制御基板の処理負荷の増大を抑制することができる。
[主制御部のハードウェア構成]
ここで、本実施形態は、簡易な構成で実現できるため、ハードウェアでもソフトウェアでも容易に実現可能である。以下、ハードウェアで実現する場合の主制御部の認証に関する構成の一例について説明する。図16は、主制御部10の認証に関する構成である誤り検査値生成・送信部(生成送信回路10g)を示す構成図である。
誤り検査値生成・送信部700は、CPU10aの指示に基づいて、制御コマンド情報を生成して演出制御部203に送信するための具体的な手段であり、制御回路710と、誤り検査値生成回路720と、誤り検査値入出力部730と、データ送信バッファ740と、データ送信回路750とを備える。
制御回路710は、CPU10aと制御線で接続されており、誤り検査値生成・送信部500を構成する各部の動作を制御する。誤り検査値生成回路720は、制御回路710の生成回路制御指示に基づいて、CPU10aから出力された制御コマンドを用いて誤り検査値を生成し、生成した誤り検査値を誤り検査値入出力部730に出力する。誤り検査値入出力部730は、シフトレジスタ等によって構成され、制御回路710のデータ入出力指示に基づいて誤り検査値生成回路720から出力された今回送信する制御コマンドの誤り検査値を保存するとともに、既に保存されている前回送信した制御コマンドの誤り検査値をデータ送信バッファ740に出力する。ここで、誤り検査値生成回路720は、図2に示す誤り検査値生成部520に対応している。また、誤り検査値入出力部730は、誤り検査値記憶部530に対応している。また、誤り検査値生成回路720と誤り検査値入出力部730は誤り検査値生成部760を構成し、これは誤り検査値生成部510に対応している。
データ送信バッファ740は、CPU10aから出力された今回送信する制御コマンドと、誤り検査値入出力部730から出力された誤り検査値を併せて送信するために、これらを一時的に保存する記憶領域である。データ送信バッファ740は、制御回路710の送信制御指示に基づいて一時的に保存した制御コマンドと誤り検査値とを併せてデータ送信回路750に出力する。データ送信回路750は、データ送信バッファ740から出力された制御コマンドと誤り検査値とを用いて制御コマンド情報を生成し、中間部20に送信する。ここで、データ送信バッファ740とデータ送信回路750は、図2に示す付加部540と送信部550に対応している。
なお、上述のハードウェア構成は一例であり、本実施形態の遊技機1の機能を実現するハードウェア構成であればよい。また、上述のハードウェア構成では、特に言及しなかったが、誤り検査値生成・送信部700をCPU10aと、ROM10bと、RAM10cと一体のワンチップマイコンとして構成してもよい。また、ワンチップマイコンとして構成する場合、制御回路710とデータ送信バッファ740と、データ送信回路750から構成される送信部と、誤り検査値生成部760とを別に設けてもよい。これにより、既存のワンチップマイコンの送信部を転用するとともに誤り検査値生成部760を追加することで、既存のワンチップマイコンを利用して容易に形成することができる。
[第2の実施形態]
以下、本発明の遊技機の一実施形態に係る第2の実施形態について説明する。第1の実施形態の遊技機1は、前回送信した制御コマンドの誤り検査値を今回送信する制御コマンドに付加して制御コマンド情報を生成するために、生成した誤り検査値を保存しておき、保存しておいた前回送信した制御コマンドの誤り検査値を取得して制御コマンド情報を生成していた。これに対して、本実施形態の遊技機は、制御コマンドを保存しておき、既に保存してある前回送信した制御コマンドを取得してその誤り検査値を生成し、この誤り検査値を今回送信する制御コマンドに付加して制御コマンド情報を生成する。本実施形態の遊技機は、それ以外の点では基本的に第1の実施形態の遊技機1と同様なので、以下、同一の部材については同一の符号を付すとともにその説明は省略し、異なる点について重点的に説明する。
[遊技機の認証に関する構成]
図17は、本実施形態に係るパチンコ遊技機を構成する主制御部10の認証処理に関する構成を示す機能ブロック図である。主制御部10は、制御コマンド出力部500と、誤り検査値生成部810と、付加部540と、送信部550とを備えている。さらに、誤り検査値生成部810は、制御コマンド記憶部820と、誤り検査値演算部830とから構成される。主制御部10を構成する各機能ブロックは、図2に示す、CPU10a、ROM10b、RAM10cおよび生成送信回路10gの各手段を適宜組み合わせて構成される。
制御コマンド出力部500は、演出制御部203に今回送信する制御コマンドを生成し、誤り検査値生成部810および付加部540に出力する。付加部540は、制御コマンド出力部500から出力された今回送信する制御コマンドに、誤り検査値生成部810から送られた前回送信した制御コマンドを用いて生成された誤り検査値を付加して、演出制御部203へと送信する制御コマンド情報を生成する。送信部550は、制御コマンド情報を中間部20へと送信する。
制御コマンド記憶部820は、制御コマンド出力部500から出力された制御コマンドを記憶する。本実施形態では、今回送信する制御コマンドと前回送信した制御コマンドとの少なくとも2つを記憶しておけばよい。また、制御コマンド記憶部820は、今回送信する制御コマンドを記憶するとともに、前回送信した制御コマンドを誤り検査値演算部830に出力する。制御コマンド記憶部820の機能を実現する具体的な手段は、図2に示す生成送信回路10gから構成することができる。
誤り検査値演算部830は、制御コマンド記憶部820から出力された前回送信した制御コマンドを用いて誤り検査値を生成する。さらに、誤り検査値演算部830は、前回送信した制御コマンドを用いて生成された誤り検査値を付加部540に送る。検査値演算部830の機能を実現する具体的な手段は、図2に示す生成送信回路10gから構成することができる。
次に、認証処理時における主制御部10の各構成部の処理について説明する。図18は、主制御部の認証に関する処理を示すシーケンス図である。
パチンコ遊技機1の電源が投入され、主制御部10のCPU10aが初期設定処理を行った後、主制御部10を構成する制御コマンド出力部10は、制御コマンドの出力を開始する。
ステップS61において、制御コマンド出力部500は、演出制御部203に今回送信する制御コマンドを生成し、誤り検査値生成部810および付加部540に出力する。
制御コマンド出力部500から出力された制御コマンドを受信した誤り検査値生成部810は、ステップS62において、受信した今回送信する制御コマンドを制御コマンド記憶部820に保存する。続いて、ステップS63において、誤り検査値演算部830は、制御コマンド記憶部820に既に保存されている前回送信した制御コマンドを受け取って、この前回送信した制御コマンドを用いて誤り検査値を生成する。ステップS64において、ステップS63で生成した前回送信した制御コマンドの誤り検査値を付加部540に出力する。
次に、ステップS65において、付加部540は、ステップS61で制御コマンド出力部500から出力された今回送信する制御コマンドに、ステップS64で誤り検査値生成部810から出力された前回送信した制御コマンドを用いて生成された誤り検査値を付加して制御コマンド情報を生成し、送信部550に送る。続いて、ステップS66において、送信部550は、今回送信する制御コマンドに前回送信した制御コマンドの誤り検査値を付加して生成された制御コマンド情報を中間部20へと送信する。なお、上述のように最初に送信される制御コマンドには誤り検査値に替えて所定の初期値が付加される。
なお、本実施形態では、誤り検査値生成部810が、今回送信する制御コマンドを保存(ステップS62)した後に、前回送信した制御コマンドの誤り検査値を生成(ステップS63)し、前回送信した制御コマンドの誤り検査値を付加部540に出力(ステップS64)するとしたが、これに限定されない。例えば、誤り検査値生成部810が、前回送信した制御コマンドの誤り検査値を生成(ステップS63)し、前回送信した制御コマンドの誤り検査値を付加部540に出力(ステップS64)した後に、今回送信する制御コマンドを保存(ステップS62)するようにしてもよい。この場合、誤り検査値生成部810は、少なくとも一つの制御コマンドを保存しておけばよく、制御コマンドを保存するステップS62において、既に保存されている制御コマンドに新しい制御コマンドを上書き保存するようにしてもよい。
図19は、本発明の第2の実施形態に係るパチンコ遊技機を構成する中間部20の認証処理に関する構成を示す機能ブロック図である。中間部20は、受信部600と、誤り検査値生成部910と、誤り検査部640と、付加部650と、送信部660とを備えている。さらに、誤り検査値生成部910は、制御コマンド記憶部920と、誤り検査値演算部930とから構成される。中間部20を構成する各機能ブロックは、図2に示す、CPU20a、ROM20b、およびRAM20c等の各手段を適宜組み合わせて構成される。
受信部600は、受信データ用記憶領域を有し、主制御部10から受信した制御コマンド情報を受信データ用記憶領域に書き込む。また、受信部600は、受信した制御コマンド情報に含まれる今回受信した制御コマンドを誤り検査値生成部910へ、今回受信した制御コマンドに付加された誤り検査値を誤り検査部640へと送信する。誤り検査部640は、受信部600から送られた今回受信した制御コマンドに付加された誤り検査値と、誤り検査値生成部910から送られた前回受信した制御コマンドを用いて生成された誤り検査値とを用いて誤り検査を行う。また、誤り検査部640は誤り検査の結果である認証結果データを付加部650に出力する。
付加部650は、受信部600から出力された、今回中間部20で受信した制御コマンドに、誤り検査部640から出力された認証結果データを付加して、演出制御部203へ送信する認証結果データ付き制御コマンドを生成する。送信部660は、付加部650から出力された認証結果データ付き制御コマンドを演出制御部203へと送信する。
誤り検査値生成部910は、受信部600から送られた今回受信した制御コマンドを保存する。さらに、誤り検査値生成部910は、受信部600から前回送られた制御コマンド、すなわち、中間部20が前回受信した制御コマンドを用いて生成された誤り検査値を誤り検査部640に送る。
具体的には、誤り検査値生成部910を構成する制御コマンド記憶部920は、受信部600から出力された制御コマンドを記憶する。本実施形態では、今回受信した制御コマンドと前回受信した制御コマンドとの少なくとも2つを記憶しておけばよい。また、制御コマンド記憶部920は、今回受信した制御コマンドを記憶するとともに、前回受信した制御コマンドを誤り検査値演算部930に出力する。制御コマンド記憶部920の機能を実現する具体的な手段は、図2に示すCPU20aの一部、ROM20bの一部、およびRAM20cの一部等から構成することができる。
誤り検査値演算部930は、制御コマンド記憶部920から出力された前回受信した制御コマンドを用いて誤り検査値を生成する。さらに、誤り検査値演算部930は、前回受信した制御コマンドを用いて生成した誤り検査値を誤り検査部640に送る。誤り検査値演算部930の機能を実現する具体的な手段は、図2に示すCPU20aの一部、ROM20bの一部、およびRAM20cの一部等から構成することができる。
次に、認証処理時における中間部20の各構成部の処理について図20を用いて説明する。図20は、中間部20の認証に関する処理を示すシーケンス図である。
パチンコ遊技機1の電源が投入され、主制御部10のCPU10aが初期設定処理を行った後、主制御部10を構成する制御コマンド出力部500は、制御コマンドの出力を開始し、演出制御部203に誤り検査値付き制御コマンドである制御コマンド情報を送信する。なお、上述のように最初に送信される制御コマンドには誤り検査値に替えて所定の初期値が付加される。
ステップS71において、受信部600は、誤り検査値付き制御コマンドである制御コマンド情報を受信して、受信データ用記憶領域に書き込む。続いて、ステップS72において、受信部600は、受信した誤り検査値付き制御コマンドの制御コマンドを誤り検査値生成部910に、誤り検査値を誤り検査部640に出力する。
受信部600から今回受信した制御コマンドを受信した誤り検査値生成部910は、ステップS73において、今回受信した制御コマンドを保存する。続いて、ステップS74において、誤り検査値生成部910は、既に保存されている前回受信した制御コマンドを取得して、この前回受信した制御コマンドを用いて誤り検査値を生成する。続いて、ステップS75において、生成した前回受信した制御コマンドの誤り検査値を誤り検査部640に出力する。
次に、ステップS76において、誤り検査部640は、ステップS42で受信部600から出力された今回受信した制御コマンドに付加された誤り検査値と、ステップS75で誤り検査値生成部910から送られた前回受信した制御コマンドを用いて生成された誤り検査値とを用いて誤り検査を行う。具体的には、誤り検査部640は、上記2つの誤り検査値を照合し、同一の値であるかを検証する。同一の場合は、誤り検査部640は、今回および前回受信した制御コマンドの正当性を認証する。非同一の場合は、誤り検査部640は、制御コマンドに正当性がなく、誤りがあると判断する。なお、最初に受信した制御コマンドには誤り検査値に替えて所定の初期値が付加されるので、誤り検査部640は、同様に所定の初期値を用いて誤り検査を行う。
次に、ステップS77において、誤り検査部640は、誤り検査の結果、すなわち制御コマンドの認証結果である認証結果データを付加部650に出力する。続いて、ステップS78において、付加部650は、ステップS72で受信部600から出力された今回受信した制御コマンドに、ステップS77で誤り検査部640から出力された認証結果データを付加して、認証結果データ付き制御信号を生成し、送信部660に出力する。続いて、ステップS79において、送信部660は、付加部650から出力された認証結果データ付き制御コマンドを演出制御部203へ送信する。
なお、本実施形態では、誤り検査値生成部910が、今回受信した制御コマンドを保存(ステップS73)した後に、前回受信した制御コマンドの誤り検査値を生成(ステップS74)し、生成した誤り検査値を誤り検査部640に出力(ステップS75)するとしたが、これに限定されない。例えば、誤り検査値生成部910が、前回受信した制御コマンドの誤り検査値を生成(ステップS74)し、生成した誤り検査値を誤り検査部640に出力(ステップS75)した後に、今回受信した制御コマンドを保存(ステップS73)するようにしてもよい。
[遊技機の動作処理]
次に、上記構成のパチンコ遊技機の動作処理について、図面を参照して説明する。
本実施形態において主制御部10による処理は、第1の実施形態と制御コマンド送信処理のみが異なる。また。中間部20による処理は、誤り検査値生成部910による誤り検査値の生成処理が異なる。よって、以下、主制御部10による中間部20への制御コマンドの送信する際の制御コマンド送信処理について図21を用いて説明する。また、中間部20による処理について図22を用いて説明する。なお、演出制御部203による処理は第1の実施形態と同一なので、その説明は省略する。
図21は、主制御部10による制御コマンド送信処理の手順の一例を示すフローチャートである。図9に示す、主制御部10のメイン処理において制御コマンドの送信タイミングになったら、ステップS81において、誤り検査値生成部810は、制御コマンド出力部500から出力された今回送信する制御コマンドを保存し、ステップS82へと進む。
ステップS82において、誤り検査値生成部810は、既に保存されている前回送信した制御コマンドを受け取って、この前回送信した制御コマンドを用いて誤り検査値を生成し、ステップS83へ進む。
ステップS83において、付加部540は、前回送信した制御コマンドの誤り検査値を誤り検査値生成部810から受け取って、この誤り検査値を制御コマンド出力部500から出力された今回送信する制御コマンドに付加して制御コマンド情報を生成し、ステップS84へ進む。
ステップS84において、送信部550は、誤り検査値付き制御コマンドである制御コマンド情報を付加部540から受け取って、中間部20に送信し、本フローチャートによる処理を終了する。
なお、本実施形態では、今回送信する制御コマンドを保存するステップS81のタイミングは上記タイミングに限定されず、制御コマンド情報を送信するステップS84の後でステップS81を行ってもよい。
以下、中間部20が実行する処理について、図22に示すフローチャートを参照して説明する。図22は、中間部20によるメイン処理である認証処理の手順の一例を示すフローチャートである。
パチンコ遊技機1の電源が投入され、主制御部10のCPU10aが初期設定処理を行った後、主制御部10を構成する制御コマンド出力部10は、制御コマンドの出力を開始し、中間部20に誤り検査値付き制御コマンドである制御コマンド情報を送信する。中間部20の受信部600は、誤り検査値付き制御コマンドである制御コマンド情報を受信すると、それを受信データ用記憶領域に書き込む。ステップS2021において、中間部20は、受信データ用記憶領域に制御コマンド情報が書き込まれているか否かを判断することにより、制御コマンド情報を受信したか否かを判断する。中間部20は、制御コマンド情報を受信するまで同判断を繰り返す。制御コマンド情報を受信していた場合は、ステップS2022に進む。
ステップS2022において、中間部20の受信部600は、受信した誤り検査値付き制御コマンドから誤り検査値を取得して誤り検査部640に出力する。同時に、中間部20の受信部600は、受信した制御コマンドを誤り検査値生成部910および付加部650に出力する。
続いて、ステップS2023において、中間部20の誤り検査値生成部910は、受信部600から出力された制御コマンドを保存する。
続いて、ステップS2024において、誤り検査値生成部910は、予め保存してある前回受信した制御コマンドを取得し、取得した制御コマンドを用いて誤り検査値を生成し、誤り検査部640へ出力する。
続いて、ステップS2025において、中間部20の誤り検査部640は、受信部600から出力された今回受信した制御コマンドに付加された誤り検査値と、誤り検査値生成部610から出力された前回受信した制御コマンドを用いて生成された誤り検査値とを用いて誤り検査を行い、ステップS2026に進む。
ステップS2026において、誤り検査部640は、検査結果が正しいか否かを判断する。具体的には、誤り検査部640は、上記2つの誤り検査値を照合し、同一の値であるかを検証する。同一の場合は、誤り検査部640は、検査結果が正しいと判断し、ステップS2027へ進み、今回および前回受信した制御コマンドの正当性の認証が成功したことを示す認証結果データを生成し、付加部650へ出力する。非同一の場合は、誤り検査部640は、検査結果が正しくないと判断し、ステップS2028へ進み、制御コマンドの正当性の認証が不成功であったことを示す認証結果データを生成し、付加部650へ出力する。
続いて、ステップS2029において、付加部650は、受信部600から出力された今回受信した制御コマンドに、誤り検査部640から出力された認証結果データを付加して、認証結果データ付き制御信号を生成し、送信部660に出力する。
続いて、ステップS2030において、送信部660は、付加部650から出力された認証結果データ付き制御コマンドを演出制御部203へ送信し、本フローチャートによる処理を終了する。
なお、本実施形態においても、第1の実施形態同様に、中間部20を介して主制御部10と賞球制御部204との間で認証処理を行う場合も、本実施形態のように中間部20を介して主制御部10と演出制御部203との間の認証処理とほぼ同様の手順で行われるため説明を省略する。
以上のように、本実施形態では、主制御部10は、制御コマンドを保存している。そして主制御部10は、既に保存している前回送信した制御コマンドの誤り検査値を生成し、今回送信する制御コマンドに付加して制御コマンド情報として中間部20に送信する。一方、中間部20は、制御コマンドを保存している。そして中間部20は、今回受信した制御コマンド情報に含まれる誤り検査値と、既に保存している前回受信した制御コマンドから生成した誤り検査値とを照合して誤り検査を行う。すなわち、本実施形態に係る遊技機も第1の実施形態同様に、過去に送信した制御コマンドの誤り検査値を今回送信する制御コマンドに付加して、主制御部10から中間部20に送信している。上述のように構成される本実施形態の遊技機も第1の実施形態の遊技機1と同様の効果を得ることができる。
[主制御部のハードウェア構成]
ここで、本実施形態の遊技機も、第1の実施形態の遊技機1と同様に、簡易な構成で実現できるため、ハードウェアでもソフトウェアでも容易に実現可能である。以下、ハードウェアで実現する場合の主制御部の認証に関する構成の一例について説明する。図23は、主制御部10の認証に関する構成である誤り検査値生成・送信部(生成送信回路10g)を示す構成図である。
誤り検査値生成・送信部1000は、CPU10aの指示に基づいて、制御コマンド情報を生成して演出制御部203に送信するための具体的な手段であり、制御回路1010、制御コマンド入出力部1020、誤り検査値生成回路1030、データ送信バッファ1040、およびデータ送信回路1050を備える。
制御回路1010は、CPUと制御線で接続されており、誤り検査値生成・送信部1000を構成する各部の動作を制御する。制御コマンド入出力部1020は、シフトレジスタ等によって構成され、制御回路1010のデータ入出力指示に基づいてCPU10aから出力された今回送信する制御コマンドを保存するとともに、既に保存されている前回送信した制御コマンドを誤り検査値生成回路1030に出力する。誤り検査値生成回路1030は、制御回路1010の生成回路制御指示に基づいて、制御コマンド情報入出力部1020から出力された前回送信した制御コマンドを用いて誤り検査値を生成する。誤り検査値生成回路1030は、生成した誤り検査値をデータ送信バッファ1040に出力する。ここで、制御コマンド入出力部1020は、図16に示す、制御コマンド記憶部820に対応している。また、誤り検査値生成回路1030は、図16に示す誤り検査値演算部830に対応している。また、制御コマンド入出力部1020と誤り検査値生成回路1030は誤り検査値生成部1060を構成し、これは図16に示す誤り検査値生成部810に対応している。
データ送信バッファ1040は、CPU10aから出力された今回送信する制御コマンドと、誤り検査生成部1030から出力された誤り検査値を併せて送信するために、これらを一時的に保存する記憶領域である。データ送信バッファ1040は、制御回路1010の送信制御指示に基づいて一時的に保存した制御コマンドと誤り検査値とを併せてデータ送信回路1050に出力する。データ送信回路750は、データ送信バッファ1040から出力された制御コマンドと誤り検査値とを用いて制御コマンド情報を生成し、中間部20に送信する。ここで、データ送信バッファ1040とデータ送信回路1050は、図16に示す付加部540と送信部550に対応している。
なお、上述のハードウェア構成は一例であり、本実施形態の遊技機の機能を実現するハードウェア構成であればよい。また、上述のハードウェア構成では、特に言及しなかったが、誤り検査値生成・送信部1000をCPU10aとROM10bとRAM10cと一体のワンチップマイコンとして構成してもよい。また、ワンチップマイコンとして構成する場合、制御回路1010とデータ送信バッファ1040と、データ送信回路1050から構成される送信部と、誤り検査値生成部1060とを別に設けてもよい。このように、既存のワンチップマイコンの送信部を転用するとともに誤り検査値生成部1060を追加することで、既存のワンチップマイコンを利用して容易に形成することができる。
以上、本発明の遊技機の一例である各実施形態について詳細に説明したが、本発明の遊技機は上記実施形態に限定されない。例えば、上記実施形態では、図4に示すように、今回送信する制御コマンドに、前回送信した制御コマンド、すなわち1個前に送信した制御コマンドの誤り検査値を付加して制御コマンド情報とした。しかしながら、本発明はこれに限定されず、今回送信する制御コマンドにn(nは2以上の整数)個前に送信した制御コマンドの誤り検査値を付加して制御コマンド情報を生成するようにしてもよい。この場合、1〜n個目に送信する制御コマンドは誤り検査値のダミーデータや遊技機固有のID等を初期値として付加して制御コマンド情報とすればよい。また、第1の実施形態の遊技機の場合、少なくともn個の誤り検査値を保存可能に構成すればよい。また、第2の実施形態の遊技機の場合、少なくともn個の制御コマンドを保存可能に構成すればよい。
具体的に、n=2の場合、すなわち、今回送信する制御コマンドに、2個前に送信した制御コマンドの誤り検査値を付加する場合の制御コマンド情報の構成について、図23を用いて説明する。図24に示すように、制御コマンド情報は、基本的に、制御コマンドにその2つ前に送信された制御コマンドの誤り検査値を付加した形式になっている。ただし、最初に送信される制御コマンド1には所定の初期値1が付加されている。また、2つ目に送信される制御コマンド2には初期値2が付加されている。そして、3番目に送信される制御コマンド3には、最初に送信された制御コマンド1の誤り検査値1が付加され、制御コマンド情報が生成される。同様に、4番目に送信される制御コマンド4には、2番目に送信される制御コマンド2の誤り検査値2が付加され、制御コマンド情報が生成される。以下、同様にして制御コマンド情報が生成される。
このように、n個前に送信した制御コマンドの誤り検査値を、今回送信する制御コマンドに付加することにより、制御コマンドとそれに付加された誤り検査値との関係がより解析困難とすることができる。これにより、不正者が制御コマンド情報を搾取したとしても、不正を行うことをより困難とすることができる。
また、上記実施形態では、制御コマンドのMODEとDATAの両方のデータを用いて誤り検査値を生成するとしたが、本発明の遊技機は、これに限定されない。例えば、本発明の遊技機は、制御コマンドのMODEの情報、すなわち制御コマンドの分類を識別するための1バイトのデータのみを用いて誤り検査値を生成するようにしてもよい。
さらに、本発明の遊技機は、制御コマンドとそれに付加された誤り検査値を用いて誤り検査値を生成してもよい。これにより、今回送信する誤り検査値が、それまでに付加された誤り検査値の情報、すなわち、それまでに送信された制御コマンド情報を含むことになる。したがって、誤り検査値が制御コマンドの送信履歴の情報を含むことになるので、不正者が一部の制御コマンド情報を搾取したとしても誤り検査値を解析することができないようにすることができ、セキュリティ強度を向上することができる。また、誤り検査値が制御コマンドの送信履歴の情報を含むことになるので、制御コマンドの連続性を検証することができる。
制御コマンドとそれに付加された誤り検査値を用いて誤り検査値を生成するための具体的な構成は、例えば、次のようなものが考えられる。誤り検査値生成部において、前回送信した制御コマンドから生成した誤り検査値を誤り検査値記憶部から誤り検査値演算部へ出力し、今回送信する制御コマンドと出力された誤り検査値とを用いて誤り検査値演算部が誤り検査値を生成するように構成すればよい。
また、本発明の遊技機は、過去に送信した複数の制御コマンドまたは制御コマンド情報を用いて誤り検査値を生成するようにしてもよい。これにより、制御コマンドとそれに付加された誤り検査値との関係がより解析困難とすることができ、不正者が制御コマンド情報を搾取したとしても、不正を行うことをより困難とすることができる。
過去に送信した複数の制御コマンドを用いて誤り検査値を生成するための具体的な構成は、例えば、次のようなものが考えられる。誤り検査値生成部において、制御コマンド出力部から出力された制御コマンドを複数記憶する制御コマンド記憶部を設け、この制御コマンド記憶部から出力された複数の制御コマンドを用いて誤り検査値演算部が誤り検査値を生成するように構成すればよい。
また、過去に送信した複数の制御コマンド情報を用いて誤り検査値を生成するための具体的な構成は、例えば、次のようなものが考えられる。誤り検査値生成部において、制御コマンド出力部から出力された制御コマンドと、誤り検査値演算部が生成したその誤り検査値を制御コマンド情報として複数記憶する制御コマンド情報記憶部を設け、この制御コマンド記憶部から出力された複数の制御コマンドを用いて誤り検査値演算部が誤り検査値を生成するように構成すればよい。
上述のように、本発明の遊技機は、今回送信する制御コマンドに対して所定の過去に出力された制御コマンドを少なくとも用いて生成した誤り検査値を、今回送信する制御コマンドに付加する。これにより、制御コマンドとそれに付加された誤り検査値との関係がより解析困難とすることができ、不正者が制御コマンド情報を搾取したとしても、不正を行うことを困難とすることができる。
なお、本発明の遊技機は、過去に送信した制御コマンド、または過去に送信した制御コマンドとその誤り検査値に加えて、今回送信する制御コマンドも含めて誤り検査値を生成してもよい。これにより、今回受信した制御コマンドの通信エラーチェックを、今回受信した制御コマンドに付加された誤り検査値を用いて、リアルタイムに行うことができる。
今回送信する制御コマンドも含めて誤り検査値を生成するための具体的な構成は、例えば、次のようなものが考えられる。誤り検査値を生成する対象となるデータである過去に送信した複数の制御コマンドまたは制御コマンド情報を記憶する記憶部を設け、記憶部から出力された複数の制御コマンドまたは制御コマンド情報と、制御コマンド出力部から出力された今回送信する制御コマンドとを用いて誤り検査値を生成するように構成すればよい。
このように、本発明の遊技機は、過去に送信した制御コマンド、または過去に送信した制御コマンドとその誤り検査値に加えて、今回送信する制御コマンドも含めて誤り検査値を生成してもよいが、セキュリティ強度の向上という観点においては、今回送信する制御コマンドの誤り検査値を、今回送信する制御コマンド自身を用いずに生成する方が好ましい。具体的には、過去に送信した制御コマンド、または過去に送信した制御コマンドとその誤り検査値とを用いて、今回送信する制御コマンドに付加する誤り検査値を生成するのが好ましい。このように、今回送信する制御コマンドを用いずに誤り検査値を生成する場合、今回送信する制御コマンドとそれに付加された誤り検査値との間に関連性がない。このため、不正者が、制御コマンドとそれに付加された誤り検査値との二つの値を搾取したとしても、これらの関係を解析することができない。したがって、不正者が制御コマンドとそれに付加された誤り検査値との関係を解析することをより一層困難とすることができる。すなわち、不正者が制御コマンド情報を搾取したとしても、不正を行うことをより一層困難とすることができる。
また、本発明によれば、認証処理は、中間部20のみが実行するので、周辺部30を構成するCPUの処理負荷の増大を抑制することができる。このため、周辺部30の処理速度が低下し、演出のための表示がスムーズに行われないなどの問題の発生を防止することができる。
さらに、本発明によれば、認証処理を実行する中間部20と、所定の処理を行う周辺部30とが別個独立しているため、認証用のプログラムまたはハードウェアと、所定の処理用のプログラムまたはハードウェアとを別個に設計することができる。これにより、所定の処理を行う周辺部30の演出処理に認証機能を追加する場合と比較して、認証機能を追加するタイミングの設計・機能の実装・機能の検証、ハードウェアの設計などをより簡単に実現することができる。また、認証用のプログラム及び所定の処理用のプログラムの構成が比較的簡単となるため、他の機能と整合性を保つことが容易となる。
さらにまた、本発明によれば、遊技機の機種ごとに所定の処理が異なる場合であっても、認証処理は共通化が可能であるため、遊技機の機種ごとのプログラム設計やハードウェア設計が容易であり、設計時間の短縮化を図ることができるとともに、作業効率が向上する。
なお、上記実施形態では、主制御部10は、誤り検査値を生成するための生成送信回路10gを備えていたが、これに限定されず、同様の機能をCPU10a、ROM10b、およびRAM10cを用いて実現してもよい。すなわち、本実施形態はハードウェアにて、認証機能を実現していたが、これに限定されず、CPU10a、ROM10b、およびRAM10cを用いてソフトウェアによって実現してもよい。
また、中間部20は、CPU20a、ROM20b、およびRAM20cを用いてソフトウェアによって認証機能を実現していたが、これに限定されず、誤り検査値を生成するための生成回路や誤り検査を行う検査回路等を設け、ハードウェアによって認証機能を実現してもよい。
また、上記実施形態では、中間部20は、認証結果データを制御コマンドに付加して認証結果データ付き制御コマンドとして演出制御部203に送信するとしたが、これに限定されず、制御コマンドおよび認証結果データを別々に送信するようにしてもよい。この場合、演出制御部203は、認証結果データを受信したかを判断し、認証結果データを受信した場合に図15に示す認証結果データ解析処理を行うようにすればよい。なお、制御コマンドと認証結果データのそれぞれにダミーデータを付加して、データ量が同一となるようにしてもよい。このようにすることにより、不正者が、制御コマンドと認証結果データを区別することを困難とすることができ、不正防止の強度を向上することができる。
また、上記実施形態では、中間部20は、認証成功の場合も認証不成功の場合も、認証結果を認証結果データとして制御コマンドに付加して演出制御部203へ送信するとしたが、本発明はこれに限定されない。例えば、中間部20は、認証不成功の場合のみ認証不成功を示す認証結果データ、あるいは認証が不成功であることを報せる認証不成功信号を演出制御部203へ送信するようにしてもよい。演出制御部203は、認証結果データまたは認証不成功信号を受信したか否かを判断し、受信した場合に報知信号を出力するように構成すればよい。
また、第1の実施形態の主制御部10の構成に第2の実施形態の演出制御部203の構成を組み合わせてもよい。すなわち、主制御部10は、誤り検査値を保存しておく構成を採用し、演出制御部203は、制御コマンドを保存しておく構成を採用してもよい。また、同様に、第2の実施形態の主制御部10の構成に第1の実施形態の演出制御部203の構成を組み合わせてもよい。
また、上記実施形態では、本発明をパチンコ遊技機に適用する例を示したが、これに限定されず、本発明は、雀球遊技機、アレンジボール等のパチンコ遊技機以外の弾球遊技機、スロットマシン等の回胴式遊技機などの他の遊技機にも適用することができる。これらの遊技機においても、上記実施形態と同様に構成することにより、上記実施形態と同様の効果を得ることができる。また、上記実施形態は、その目的及び構成等に特に矛盾や問題がない限り、互いの技術を流用することができる。
また、上述した本発明は、過去に送信した制御コマンドを少なくとも用いて出力した誤り検査値を今回送信する制御コマンドに付加して送信するという方法を用いる認証方法を実現する基本形であり、よりセキュリティ強度の高い認証方法や誤り検査値の生成方法する形態へと発展させることができるものである。