以下では、本発明の実施の形態について、添付図面を参照しつつ詳細に説明する。
<外観構成>
図1は、本発明の一実施形態に係るスロットマシン1の斜視図である。
スロットマシン1は、前面が開放された箱型の本体2と、本体2の前面を開閉可能に設けられた前扉3とを備えている。
本体2内には、上下方向の中央部より少し上方の位置に、左リール4L、中リール4Cおよび右リール4Rが左右に並べて配置されている。左リール4L、中リール4Cおよび右リール4Rは、ドラム状のリール枠の周面にリール帯を巻着した構成を有しており、リール枠の中心で左右方向に延びる軸を中心に回転可能に設けられている。リール帯には、21個の図柄が周方向に並べて配列されている。
前扉3には、左リール4L、中リール4Cおよび右リール4Rと対向する位置に、表示パネルユニット5が配置されている。
表示パネルユニット5には、左リール4L、中リール4Cおよび右リール4Rの周面の一部を視認可能にするためのリール窓6が形成されている。左リール4L、中リール4Cおよび右リール4Rの回転中は、リール窓6内に、左リール4L、中リール4Cおよび右リール4Rの図柄が次々に現れる(図柄の変動表示)。左リール4L、中リール4Cおよび右リール4Rが停止すると、リール窓6内に、左リール4L、中リール4Cおよび右リール4Rのそれぞれ3個の図柄、合計9個の図柄が表示される(図柄の停止表示)。
また、表示パネルユニット5には、遊技に関する基本的な情報を表示するための各種の表示器が備えられている。この表示器には、たとえば、クレジット数表示器7、配当数表示器8、3個のベット数表示LED9、リプレイ表示LED10、スタート可否表示LED11およびメダル受付可否表示LED12が含まれる。クレジット数表示器7および配当数表示器8は、リール窓6の下方において、左右に並べて配置されている。クレジット数表示器7および配当数表示器8は、それぞれ2桁の数字を表示可能に構成されている。3個のベット数表示LED9は、クレジット数表示器7の左側において、上下に並べて配置されている。リプレイ表示LED10、スタート可否表示LED11およびメダル受付可否表示LED12は、配当数表示器8の右側において、上下に並べて配置されている。
前扉3には、表示パネルユニット5の下方に、操作部13が設けられている。操作部13は、表示パネルユニット5の前面に対して前側に張り出しており、平坦な上面14および前側に緩やかに凸湾曲した前面15を有している。
上面14の右端部には、メダル投入口16が設けられている。上面14の左端部には、MAXベットボタン17および1枚ベットボタン18が設けられている。1枚ベットボタン18は、MAXベットボタン17の左側に配置されている。
前面15には、スタートレバー19、左ストップボタン20L、中ストップボタン20C、右ストップボタン20Rおよび精算ボタン21が設けられている。左ストップボタン20L、中ストップボタン20Cおよび右ストップボタン20Rは、前面15の左右方向の中央部において、左からこの順に並べて配置されている。スタートレバー19は、左ストップボタン20Lの左側に配置されている。精算ボタン21は、スタートレバー19のさらに左側に配置されている。
メダル受付可否表示LED12の点灯中は、メダル投入口16からメダルが投入されると、その投入が受け付けられる。メダル受付可否表示LED12の消灯中は、メダル投入口16からメダルが投入されても、その投入が受け付けられず、前扉3の最下部に設けられたメダル排出口22からメダルトレイ23にメダルが排出される。
ゲームに対してメダルがベットされていない状態において、メダルの投入が受け付けられると、そのメダルがゲームにベットされ、1個のベット数表示LED9が点灯される。つづいて、メダルがメダル投入口16から投入されると、2枚目のメダルがゲームに追加ベットされ、2個のベット数表示LED9が点灯される。さらに、メダルがメダル投入口16から投入されると、3枚目のメダルがゲームに追加ベットされ、3個のベット数表示LED9が点灯される。スロットマシン1では、1ゲーム(1回のゲーム)に対して所定のベット枚数(たとえば、3枚)のメダルがベットされると、1ゲームが開始可能となり、スタート可否表示LED11が点灯されるとともに、リール窓6内に設定される所定の入賞ラインが有効化される。最大ベット枚数のメダルがゲームにベットされている状態で、メダル投入口16からメダルが投入された場合、その投入されたメダルは、50枚を上限として、スロットマシン1にクレジットされる。クレジットされているメダルの枚数は、クレジット数表示器7に表示される。50枚のメダルがクレジットされている状態で、メダル投入口16からメダルが投入された場合、その投入されたメダルは、メダル排出口22からメダルトレイ23に排出される。
最大ベット枚数以上のメダルがスロットマシン1にクレジットされ、ゲームに対してメダルがベットされていない状態において、MAXベットボタン17が操作されると、そのクレジットされているメダルから最大ベット枚数のメダルがゲームにベットされ、3個のベット数表示LED9およびスタート可否表示LED11が点灯されるとともに、リール窓6内に設定される所定の入賞ラインが有効化される。また、クレジット数が最大ベット枚数分だけ減り、クレジット数表示器7の表示が更新される。1枚ベットボタン18が操作された場合には、クレジットされているメダルから1枚のメダルがゲームにベットされ、1個のベット数表示LED9が点灯されるとともに、クレジット数が1だけ減り、クレジット数表示器7の表示が更新される。
ベットされたメダルは、ゲームの開始とともに消費される。スタートレバー19が操作されると、1ゲームが開始となり、左リール4L、中リール4Cおよび右リール4Rの順方向の回転が開始される。また、スタート可否表示LED11およびメダル受付可否表示LED12が消灯される。左ストップボタン20L、中ストップボタン20Cおよび右ストップボタン20Rは、それぞれ左リール4L、中リール4Cおよび右リール4Rに対応して設けられている。左リール4L、中リール4Cおよび右リール4Rの回転開始後、左ストップボタン20L、中ストップボタン20Cおよび右ストップボタン20Rが操作されると、それぞれ左リール4L、中リール4Cおよび右リール4Rの回転が停止される。
左リール4L、中リール4Cおよび右リール4Rのすべてが停止した時点で、有効化されている入賞ライン(以下、「有効ライン」という。)上に所定の図柄の組合せが並ぶと、その図柄の組合せに応じた処理が行われる。以上で1ゲームが終了となり、すべてのベット数表示LED9が消灯され、メダル受付可否表示LED12が点灯される。
たとえば、有効ライン上に小役に係る図柄の組合せが並ぶと、その小役に入賞となり、所定の配当数のメダルが配当として付与され、その配当数が配当数表示器8に表示される。配当は、スロットマシン1に50枚を上限としてクレジットされ、50枚を超える分については、メダル排出口22からメダルトレイ23に排出される。配当がクレジットされると、クレジット数が配当数だけ増え、クレジット数表示器7の表示が更新される。
また、有効ライン上にリプレイ役(再遊技役)に係る図柄の組合せが並ぶと、そのリプレイ役に入賞となり、メダルのベットなしで次の1ゲームの実行が許可され、リプレイ表示LED10が点灯される。この場合、前回のゲームと同数のメダルがベットされた状態となり、スタート可否表示LED11が点灯される。
なお、便宜上、リプレイ役など、小役以外の役に当選した場合であっても、その当選役に対応した図柄の組合せが有効ライン上に並ぶことを「入賞」と表現する。
メダル受付可否表示LED12が点灯され、1枚以上のメダルがクレジットされている状態で、精算ボタン21が操作されると、クレジットされている全メダルがメダル排出口22からメダルトレイ23に排出されて、クレジット数表示器7の表示が「0」に更新される。
また、スロットマシン1には、液晶表示装置24、1対のスピーカ25L,25Rおよび1対のスピーカ26L,26Rが搭載されている。液晶表示装置24は、表示パネルユニット5の上方に配置されている。スピーカ25L,25Rは、液晶表示装置24の左側および右側に分かれて配置されている。スピーカ26L,26Rは、メダル排出口22の左側および右側に分かれて配置されている。遊技(ゲーム)の進行に合わせて、液晶表示装置24に演出画像や各種の情報などが表示され、また、スピーカ25L,25R,26L,26Rから効果音などが出力される。
<電気的構成>
図2は、スロットマシン1の電気的構成を示すブロック図である。
スロットマシン1は、ゲームのための中枢的な処理を実行するメイン基板31と、その中枢的な処理に付随する処理(演出のための処理など)を実行するサブ基板32と、液晶表示装置24を制御する液晶基板33とを備えている。
メイン基板31には、CPU41、ROM42、RAM43、入出力ポート44およびデータ送出回路45が備えられている。CPU41、ROM42、RAM43、入出力ポート44およびデータ送出回路45は、バスにより、データを通信可能に接続されている。また、メイン基板31には、CPU41にクロックパルスを与えるクロック発生回路46と、乱数を生成する乱数生成回路47とが備えられている。
CPU41は、ROM42に格納されているプログラムを実行し、入出力ポート44から入力される信号に基づいて、入出力ポート44に接続されている各制御対象を制御する。
RAM43は、CPU41によるプログラムの実行時のワークエリアとして使用される。
入出力ポート(入力ポート)44には、MAXベットボタン17、1枚ベットボタン18、スタートレバー19、左ストップボタン20L、中ストップボタン20C、右ストップボタン20R、精算ボタン21、左リール位置検出センサ51L、中リール位置検出センサ51C、右リール位置検出センサ51R、メダル投入センサ52およびメダル払出センサ53が接続されている。
入出力ポート(出力ポート)44には、クレジット数表示器7、配当数表示器8、ベット数表示LED9、リプレイ表示LED10、スタート可否表示LED11およびメダル受付可否表示LED12が制御対象として接続されている。また、入出力ポート(出力ポート)44には、左リール4Lを回転駆動する左リール駆動モータ61L、中リール4Cを回転駆動する中リール駆動モータ61C、右リール4Rを回転駆動する右リール駆動モータ61R、メダル投入口16から投入されるメダルの受付/拒否を切り替えるためのメダルブロックソレノイド62および本体2内に設けられたメダル貯留部(図示せず)からメダルを払い出すためのメダル払出駆動モータ63が制御対象として接続されている。左リール駆動モータ61L、中リール駆動モータ61Cおよび右リール駆動モータ61Rには、ステッピングモータが採用されている。
MAXベットボタン17、1枚ベットボタン18、スタートレバー19、左ストップボタン20L、中ストップボタン20C、右ストップボタン20Rおよび精算ボタン21が操作されると、それらの個々に設けられたスイッチまたはセンサから信号が出力され、その信号が入出力ポート44を介してCPU41に入力される。また、左リール4L、中リール4Cおよび右リール4Rが1回転する度に、それぞれ左リール位置検出センサ51L、中リール位置検出センサ51Cおよび右リール位置検出センサ51Rから信号が出力され、その信号が入出力ポート44を介してCPU41に入力される。メダル投入口16からメダルが1枚投入される度に、メダル投入センサ52から検出信号が出力され、その検出信号が入出力ポート44を介してCPU41に入力される。メダル払出駆動モータ63が駆動されて、メダル貯留部からメダルが払い出される度に、メダル払出センサ53から信号が出力され、その信号が入出力ポート44を介してCPU41に入力される。
メダルがゲームにベットされた後、スタートレバー19が操作されると、CPU41は、左リール駆動モータ61L、中リール駆動モータ61Cおよび右リール駆動モータ61Rに駆動パルス信号を入力し、左リール4L、中リール4Cおよび右リール4Rの回転を開始させる。CPU41は、左リール位置検出センサ51L、中リール位置検出センサ51Cおよび右リール位置検出センサ51Rの出力信号ならびに左リール駆動モータ61L、中リール駆動モータ61Cおよび右リール駆動モータ61Rへの駆動パルス信号の出力数に基づいて、左リール4L、中リール4Cおよび右リール4Rの回転位置を常に把握している。
また、スタートレバー19が操作されると、CPU41は、内部抽選を実行する。具体的には、CPU41は、スタートレバー19が操作されたタイミングで、乱数生成回路47から乱数を取得する。そして、CPU41は、ROM42に格納されている抽選テーブルを参照する。抽選テーブルでは、乱数生成回路47が生成する乱数の範囲(たとえば、0〜65535)が複数の抽選区分に分けられ、抽選区分の個々に1以上の役が対応づけられている。CPU41は、乱数生成回路47から取得した乱数が属する抽選区分に対応づけられた役を当選役として決定する。また、CPU41は、乱数生成回路47から取得した乱数がどの抽選区分にも属さない場合には、内部抽選の結果を不当選(純ハズレ)と決定する。
その後、左リール4L、中リール4Cおよび右リール4Rの回転速度が一定になると、CPU41は、左ストップボタン20L、中ストップボタン20Cおよび右ストップボタン20Rを有効化する。そして、左ストップボタン20L、中ストップボタン20Cおよび右ストップボタン20Rが操作されると、CPU41は、左ストップボタン20L、中ストップボタン20Cおよび右ストップボタン20Rが操作されたタイミングと内部抽選の結果とに基づいて、左リール駆動モータ61L、中リール駆動モータ61Cおよび右リール駆動モータ61Rへの駆動パルス信号の出力を停止し、左リール4L、中リール4Cおよび右リール4Rの停止を制御する。このとき、左ストップボタン20Lが押操作されたタイミングでの左リール4Lの回転位置を基準として、所定コマ数分の図柄が移動する引込範囲内で左リール4Lの回転が停止される(引込制御)。中リール4Cおよび右リール4Rについても同様である。
そして、CPU41は、有効ライン上に内部抽選での当選役に対応した図柄の組合せが並んでいるか否かを判定する。有効ライン上に当選役に対応した図柄の組合せが並んでいれば、CPU41は、その当選役に入賞と判定し、当選役に応じた処理を実行する。
また、CPU41は、データ送出回路45を介して、サブ基板32に各種データを送出する。各種データには、ゲーム開始の条件が成立したことを表す信号、スタートレバー19が操作されたことを表す信号、左ストップボタン20Lが操作されたことを表す信号、中ストップボタン20Cが操作されたことを表す信号、右ストップボタン20Rが操作されたことを表す信号、および内部抽選の当選役に関する情報である当選役データなどが含まれる。
サブ基板32には、データ入力回路71が備えられている。データ入力回路71は、メイン基板31のデータ送出回路45とデータを通信可能に接続されている。データ送出回路45とデータ入力回路71との間では、データ送出回路45からデータ入力回路71への一方向に通信が行われ、データ入力回路71からデータ送出回路45への通信は行われない。
また、サブ基板32には、CPU72、ROM73、RAM74、入出力ポート76およびデータ入出力回路77が備えられている。データ入力回路71、CPU72、ROM73、RAM74、入出力ポート76およびデータ入出力回路77は、バスにより、データを通信可能に接続されている。さらに、サブ基板32には、CPU72にクロックパルスを与えるクロック発生回路78が備えられている。
CPU72は、ROM73に格納されているプログラムを実行し、データ入力回路71およびデータ入出力回路77から入力される信号に基づいて、入出力ポート76に接続されている各制御対象を制御する。制御対象には、スロットマシン1の各部の照明のためのLED79およびバックライト80などが含まれる。また、CPU72は、データ入出力回路77を介して、液晶基板33に液晶表示装置24の制御に必要なデータを送出する。
スロットマシン1には、AT機能が搭載されている。たとえば、内部抽選での所定の役に当選し、その当選役データがメイン基板31からサブ基板32に送信されると、CPU72は、AT機能を作動させるか否かを決定するAT抽選を実行する。AT抽選に当選すると、CPU72は、AT機能を作動状態とする。AT機能の作動中は、内部抽選で配当の異なる複数種類の小役に同時当選し、その当選役データがメイン基板31からサブ基板32に送信されると、スピーカ25L,25R,26L,26Rからの効果音や音声の出力が制御されるとともに、液晶表示装置24が制御されて、最も配当の多い小役を入賞させることができる正解押し順が報知される。この正解押し順に従って、左ストップボタン20L、中ストップボタン20Cおよび右ストップボタン20Rが操作されると、左リール4L、中リール4Cおよび右リール4Rの引込制御により、当選した小役の中で最も配当の多い小役に対応付けられた図柄の組み合わせが有効ライン上に並び、当該小役に入賞となる。AT機能のためのプログラムは、ROM73に格納されている。
RAM74は、CPU41によるプログラムの実行時のワークエリアとして使用される。
液晶基板33には、データ入出力回路81が備えられている。データ入出力回路81は、サブ基板32のデータ入出力回路77とデータを通信可能に接続されている。データ入出力回路77とデータ入出力回路81との間では、双方向に通信が行われる。
また、液晶基板33には、CPU82、ROM83、RAM84、駆動回路85およびサウンドプロセッサ75が備えられている。データ入出力回路81、CPU82、ROM83、RAM84、駆動回路85およびサウンドプロセッサ75は、バスにより、データを通信可能に接続されている。さらに、液晶基板33には、CPU82にクロックパルスを与えるクロック発生回路86が備えられている。
CPU82は、ROM83に格納されているプログラムを実行し、サウンドプロセッサ75にデータ(コマンド)を送信し、データ入出力回路81から入力される信号に基づいて、駆動回路85を介して、液晶表示装置24を制御する。サウンドプロセッサ75は、CPU82から与えられるデータに基づいて、スピーカ25L,25R,26L,26Rからの効果音や音声の出力を制御する。
<機能処理部>
図3は、サブ基板32のROM73に記憶されているデータの改ざんの有無をチェックするための構成を示すブロック図である。
スロットマシン1では、AT機能が搭載されているので、たとえば、AT機能が不正に作動するように、サブ基板32のROM73に格納されているプログラムが改ざんされると、多数の配当(入賞により払い出されるメダル)が遊技者に不正に獲得される可能性がある。そこで、スロットマシン1では、所定のタイミングで、サブ基板32のROM73に記憶されているデータの改ざんの有無がチェックされる。
その改ざんチェックのために、サブ基板32は、CPU72が実行するプログラム処理によってソフトウェア的に実現される機能処理部として、チェックサム算出部101およびチェックサム応答部102を実質的に備えている。一方、液晶基板33は、CPU82が実行するプログラム処理によってソフトウェア的に実現される機能処理部として、チェックサム領域設定部111、チェックサム要求部112およびチェックサム照合部113を実質的に備えている。
サブ基板32のチェックサム算出部101は、ROM73におけるチェックサム領域(チェック対象領域)に格納されているデータのチェックサムを算出する。
サブ基板32のチェックサム応答部102は、チェックサム算出部101により算出されるチェックサムを液晶基板33に向けて送信する。
液晶基板33のチェックサム領域設定部111は、サブ基板32のチェックサム算出部101によるチェックサムの算出の対象となるチェックサム領域を可変に設定する。たとえば、液晶基板33のROM83には、チェックサム領域の複数の候補が記憶されている。チェックサム領域は、サブ基板32のROM73における開始アドレスとサイズとにより特定される。チェックサム領域設定部111は、チェックサム領域の複数の候補の中から1つを選択して設定する。
液晶基板33のチェックサム要求部112は、チェックサム領域設定部111によりチェックサム領域が設定されると、そのチェックサム領域を特定する情報とともに、チェックサムの送信の要求をサブ基板32に向けて送信する。
液晶基板33のチェックサム照合部113は、チェックサム領域設定部111により設定されたチェックサム領域に対応する照合用チェックサムをROM83から読み出す。チェックサム領域設定部111により設定され得るチェックサム領域の複数の候補の個々に対して、サブ基板32のROM73に記憶されているデータに基づいて、当該候補(チェックサム領域)に対応する照合用チェックサムが予め算出され、その算出された照合用チェックサムが当該候補と関連づけて作成されたテーブルの形式でROM83に記憶されている。チェックサム照合部113は、サブ基板32のチェックサム応答部102により送信されるチェックサムを受信すると、その受信したチェックサム(被照合情報)とROM83から読み出した照合用チェックサムとを照合する。そして、チェックサム照合部113は、その照合結果に基づいて、サブ基板32のROM73に記憶されているデータの改ざんの有無を判定する。
<液晶基板における処理>
図4は、液晶基板33において実行される処理の流れを示すフローチャートである。
所定のタイミングが到来すると、改ざんチェックのために、液晶基板33のCPU82により、図4に示される処理が実行される。所定のタイミングは、たとえば、スロットマシン1の電源が投入(スロットマシン1が起動)されたタイミングである。
図4に示される処理が開始されると、まず、チェックサム領域設定部111の機能により、ROM83からチェックサム領域の候補の1つが選択され、チェックサム領域が設定される(ステップS1)。たとえば、今回の処理で「チェックサム領域1」が設定されると、次回の処理では「チェックサム領域2」が設定され、次々回の処理では「チェックサム領域3」が設定されるというように、チェックサム領域の複数の候補は、図4に示される処理が実行される度に所定の順序で1つずつ選択される。
チェックサム領域が設定されると、チェックサム要求部112の機能により、そのチェックサム領域を特定する情報とともに、チェックサムの送信の要求がサブ基板32に向けて送信される(ステップS2)。
その後は、サブ基板32からのチェックサムの受信が待機される(ステップS3のNO)。
液晶基板33がサブ基板32からチェックサムを受信すると(ステップS3のYES)、チェックサム照合部113の機能により、チェックサム領域に対応する照合用チェックサムがROM83から読み出される。そして、サブ基板32から受信したチェックサムとROM83から読み出された照合用チェックサムとが照合される(ステップS4)。
この照合の結果、サブ基板32から受信したチェックサムとROM83から読み出された照合用チェックサムとが一致した場合(ステップS5のYES)、サブ基板32のROM73に記憶されているデータの改ざんはないと判定されて(ステップS6)、図4に示される処理が終了される。
一方、サブ基板32から受信したチェックサムとROM83から読み出された照合用チェックサムとが一致しなかった場合(ステップS5のNO)、サブ基板32のROM73に記憶されているデータに改ざんがあると判定されて(ステップS7)、図4に示される処理が終了される。データに改ざんがあった場合、たとえば、スロットマシン1における遊技が中断され、液晶表示装置24における表示やスピーカ25L,25R,26L,26Rから出力される音により、その旨が報知される。
<サブ基板における処理>
図5は、サブ基板32において実行される処理の流れを示すフローチャートである。
改ざんチェック時に、サブ基板32のCPU72により、図5に示される処理が実行される。
この処理では、まず、液晶基板33からのチェックサムの送信要求を受信したか否かが判断される(ステップS11)。
チェックサムの送信要求を受信すると(ステップS11のYES)、チェックサム算出部101の機能により、液晶基板33からの要求に係るチェックサム領域のデータのチェックサムが算出される(ステップS12)。
チェックサムが算出されると、チェックサム応答部102の機能により、そのチェックサムが液晶基板33に送信されて(ステップS13)、図5に示される処理が終了される。
<作用効果>
以上のように、スロットマシン1は、液晶基板33およびサブ基板32を備えている。液晶基板33とサブ基板32とは、双方向に通信可能に接続されている。
サブ基板32のROM73におけるデータの改ざんの有無のチェックに際しては、液晶基板33において、ROM73に記憶されているデータのチェックサムの算出の対象となるチェックサム領域が可変に設定され、液晶基板33からサブ基板32に、当該チェックサム領域に係るチェックサムの送信が要求される。サブ基板32では、液晶基板33からのチェックサムの送信要求を受けて、当該要求に係るチェックサム領域に記憶されているデータのチェックサムが算出される。そして、サブ基板32から液晶基板33に、チェックサムが送信され、液晶基板33において、サブ基板32から受信したチェックサムとチェックサム領域に対応する照合用チェックサムとが照合される。
サブ基板32のROM73に格納されているデータが改ざんされている場合、チェックサム領域に正規のデータとは異なるデータが格納されているので、サブ基板32において、液晶基板33からの要求を受けて算出されるチェックサムは、液晶基板33で設定されたチェックサム領域に対応したものとならない。したがって、液晶基板33において、サブ基板32から受信するチェックサムとチェックサム領域に対応する照合用チェックサムとの照合の結果、サブ基板32のROM73に格納されているデータが改ざんされていると正しく判定することができる。
また、液晶基板33からサブ基板32へのチェックサムの送信の要求に対して、固定のチェックサムがサブ基板32から液晶基板33に送信されるように、サブ基板32のROM73に格納されているデータが改ざんされた場合、その固定のチェックサムが液晶基板33で設定されたチェックサム領域に対応したものとなる確率は極めて低い。したがって、液晶基板33において、サブ基板32から受信するチェックサムとチェックサム領域に対応する照合用チェックサムとの照合の結果、サブ基板32のROM73に格納されているデータが改ざんされていると正しく判定することができる。
一方、サブ基板32のROM73に格納されているデータが改ざんされていなければ、サブ基板32において、液晶基板33からの要求を受けて算出されるチェックサムは、液晶基板33で設定されたチェックサム領域に対応したものとなる。したがって、液晶基板33において、サブ基板32から受信するチェックサムとチェックサム領域に対応する照合用チェックサムとの照合の結果、サブ基板32のROM73に格納されているデータが改ざんされていないと正しく判定することができる。
よって、サブ基板32のROM73に記憶されているデータの改ざんの有無の正しいチェック結果を得ることができる。
液晶基板33において、チェックサム領域の複数の候補の個々に対応する照合用チェックサムがROM83に記憶されており、その複数の候補の中から1つが選択されることにより、チェックサム領域が設定される。そして、その設定されたチェックサム領域に対応する照合用チェックサムがROM83から読み出されて、その照合用チェックサムとサブ基板32から受信するチェックサムとが照合される。
これにより、チェックサムと照合用のチェックサムとの照合を迅速かつ容易に行うことができる。
<第2実施形態>
図6は、サブ基板32のROM73に記憶されているデータの改ざんの有無をチェックするための他の構成を示すブロック図である。
図3に示される構成では、液晶基板33のROM83に、チェックサム領域設定部111により設定され得るチェックサム領域の複数の候補の個々と当該候補に対応する照合用チェックサムとが互いに関連づけられて記憶されている。
これに対し、図6に示される構成において、液晶基板33のROM83には、サブ基板32のROM73に記憶されているデータ(以下、「サブ基板データ」という。)と同一のデータが記憶されている。また、ROM83には、チェックサム領域の設定に用いられる開始アドレスの複数の候補と、チェックサム領域の設定に用いられるサイズの複数の候補とが記憶されている。
そして、液晶基板33のチェックサム領域設定部111は、ROM83に記憶されている開始アドレスの候補の中から1つを選択するとともに、ROM83に記憶されているサイズの候補の中から1つを選択し、その選択された開始アドレスおよびサイズによりサブ基板32のROM73において特定される領域をチェックサム領域として設定する。
なお、開始アドレスの複数の候補およびサイズの複数の候補は、たとえば、チェックサム領域が設定される度に所定の順序で1つずつ選択される。
また、チェックサム領域が設定された後、液晶基板33のチェックサム照合部113は、ROM83に記憶されているサブ基板データと同一のデータから、サブ基板32のROM73におけるチェックサム領域に記憶されているデータと同一のデータを抽出し、その抽出したデータのチェックサムを算出することにより照合用チェックサムを作成する。チェックサム照合部113は、サブ基板32のチェックサム応答部102により送信されるチェックサムを受信すると、その受信したチェックサムと先に作成した照合用チェックサムとを照合し、サブ基板32のROM73に記憶されているデータの改ざんの有無を判定する。
図6に示される構成によっても、図3に示される構成と同様の作用効果を奏することができる。
なお、チェックサム領域の設定に用いられる開始アドレスおよびサイズの一方は、固定されていてもよい。
<第3実施形態>
図6に示される構成において、液晶基板33のROM83に開始アドレスおよびサイズの候補が記憶されておらず、チェックサム領域設定部111の機能により、チェックサム領域の設定に用いられる開始アドレスおよびサイズが算出されてもよい。
図7は、チェックサム領域の設定に用いられる開始アドレスおよびサイズが算出される場合に、液晶基板33において実行される処理の流れを示すフローチャートである。
図7に示される処理は、液晶基板33のCPU82により実行される。
図7に示される処理では、チェックサム領域設定部111の機能により、まず、たとえば、「0〜0x99」の範囲内の1個の乱数が取得され、その乱数がチェックサム領域の開始アドレスとされる(ステップS21)。たとえば、C言語では、「rand( )%0x100」と記述することにより、「0〜0x99」の範囲の乱数を算出(生成)することができる。
次に、チェックサム領域設定部111の機能により、たとえば、「1〜4」の範囲内の1個の乱数が取得され、その乱数に「256」を乗じた数がチェックサム領域のサイズとされる(ステップS22)。たとえば、C言語では、「rand( )%4+1」と記述することにより、「1〜4」の範囲の乱数を算出(生成)することができる。
そして、その算出された開始アドレスおよびサイズによりサブ基板32のROM73において特定される領域がチェックサム領域として設定される(ステップS23)。これにより、これにより、チェックサム領域がランダムに設定される。
チェックサム領域が設定されると、チェックサム要求部112の機能により、そのチェックサム領域を特定する情報とともに、チェックサムの送信の要求がサブ基板32に向けて送信される(ステップS24)。
その後は、サブ基板32からのチェックサムの受信が待機される(ステップS25のNO)。
液晶基板33がサブ基板32からチェックサムを受信すると(ステップS25のYES)、チェックサム照合部113の機能により、ROM83に記憶されているサブ基板データと同一のデータから、サブ基板32のROM73におけるチェックサム領域に記憶されているデータと同一のデータが抽出され、その抽出されたデータのチェックサムを算出することにより照合用チェックサムが作成される。そして、サブ基板32から受信したチェックサムとその作成された照合用チェックサムとが照合される(ステップS26)。
この照合の結果、サブ基板32から受信したチェックサムとROM83から読み出された照合用チェックサムとが一致した場合(ステップS27のYES)、サブ基板32のROM73に記憶されているデータの改ざんはないと判定されて(ステップS28)、図7に示される処理が終了される。
一方、サブ基板32から受信したチェックサムとROM83から読み出された照合用チェックサムとが一致しなかった場合(ステップS27のNO)、サブ基板32のROM73に記憶されているデータに改ざんがあると判定されて(ステップS29)、図7に示される処理が終了される。
サブ基板32のROM73に記憶されているデータと同一のデータが液晶基板33のROM83に記憶されているので、チェックサム領域がランダムに設定されても、その設定されたチェックサム領域に対応する照合用チェックサムを作成することができる。チェックサム領域がランダムに設定される場合、サブ基板32において、液晶基板33に送信すべきチェックサムを予め用意しておくことができない。そのため、サブ基板32のROM73に記憶されているデータが改ざんされていると、液晶基板33で設定されたチェックサム領域に対応するチェックサムをサブ基板32から液晶基板33に送信することができない。よって、液晶基板33において、照合用チェックサムとサブ基板32から受信するチェックサムとの照合により、サブ基板32のROM73に記憶されているデータの改ざんの有無をより正確に判定することができる。
<変形例>
以上、本発明のいくつかの実施形態について説明したが、本発明は、さらに他の形態で実施することもできる。
たとえば、第1の実施形態では、チェックサム領域の複数の候補が図4に示される処理が実行される度に所定の順序で1つずつ選択されるとしたが、液晶基板33のROM83に、1個または複数個の乱数がチェックサム領域の複数の候補の個々に対応づけて記憶され、チェックサム領域が設定されるタイミングでソフトウェア乱数が取得されて、その取得されたソフトウェア乱数と対応づけられているチェックサム領域の候補がチェックサム領域に設定されてもよい。これにより、チェックサム領域の設定に規則性をなくすことができる。ソフトウェア乱数は、たとえば、プラスワン方式、プラス乱数方式または線形合同法により生成される。
第2の実施形態についても同様に、液晶基板33のROM83に、1個または複数個の乱数が開始アドレスの各候補およびサイズの各候補に対応づけて記憶され、チェックサム領域の設定に際して、2個のソフトウェア乱数が取得されて、一方のソフトウェア乱数と対応づけられている開始アドレスの候補および他方のソフトウェア乱数と対応づけられているサイズの候補により特定される領域がチェックサム領域に設定されてもよい。
ソフトウェア乱数の生成には、種々の値をシード値として用いることができる。たとえば、液晶基板33に不揮発性RAMが備えられている場合、その不揮発性RAMに、液晶基板33のCPU82の動作に関するカウンタ(たとえば、CPUカウンタ(パフォーマンスカウンタ)、プログラマブルカウンタなど)の値が逐次保存されて、当該値がシード値として用いられてもよい。また、液晶基板33に備えられているRTC(Real Time Clock)の値がシード値として用いられてもよい。さらにまた、メイン基板31のCPU41を内蔵したMPUの製造番号(シリアル番号)がシード値として用いられてもよいし、スロットマシン1の製造ラインで液晶基板33に対して付与されるシリアルキーがシード値として用いられてもよい。また、液晶基板33にディップスイッチが設けられて、このディップスイッチにより設定される値がシード値として用いられてもよいし、液晶基板33に電波を受信するアンテナ回路が設けられて、このアンテナ回路が受信する電波(電波時計の電波、内部回路または周辺機器から発生する電波など)の所定周波数における強度がシード値として用いられてもよい。
メイン基板31からサブ基板32を経由して液晶基板33に入力される外部信号またはサブ基板32から液晶基板33に入力される外部信号に乱数値が含まれている場合、その乱数値がチェックサム領域の設定に用いられてもよい。
また、たとえば、外部信号を受信するごとにカウントアップする2バイトのインクリメントカウンタが液晶基板33に設けられて、そのインクリメントカウンタの値がチェックサム領域の設定に用いられてもよい。
液晶基板33のROM83にランダムな数列が格納されており、この数列の値が順に取り出されて、その取り出された値がチェックサム領域の設定に用いられてもよい。
サブ基板32のROM73に記憶されているデータの改ざんの有無を判定するために、チェックコードの1つであるチェックサムを用いる構成を例示したが、チェックサム以外のチェックコード、たとえば、CRCやMD5が用いられてもよい。また、チェックコードに限らず、液晶基板33からサブ基板32への要求に対して、サブ基板32のROM73におけるチェック対象領域に格納されているデータがサブ基板32から液晶基板33に返信されて、そのデータと液晶基板33のROM83に格納されている照合用情報とが照合されて、改ざんの有無が判定されてもよい。
また、サブ基板32のROM73に記憶されているデータの改ざんの有無のチェック(改ざんチェック)は、スロットマシン1の起動時に限らず、スロットマシン1における非遊技中や優先度の低い処理が実行されている期間に一定の時間間隔で到来するタイミングなど、定期的に到来するタイミングであってもよいし、スタートレバー19が操作されたタイミングなど、不定期に到来するタイミングであってもよい。ただし、液晶基板33にRTOS(Real Time Operating System)が搭載されていない場合には、たとえば、異なる優先度が対応づけられた複数のタイマ割り込みが設定され、優先度の最も低いタイマ割り込みによる処理の実行中に改ざんチェックが実行されてもよい。RTOSが搭載されている場合には、たとえば、優先度が一番低いスレッド内で改ざんチェックが実行されるとよい。
また、本発明は、パチンコ機など、スロットマシン1以外の遊技機に適用することもできる。
その他、前述の構成には、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。