特許第6371994号(P6371994)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社オリンピアの特許一覧
<>
  • 特許6371994-遊技機 図000002
  • 特許6371994-遊技機 図000003
  • 特許6371994-遊技機 図000004
  • 特許6371994-遊技機 図000005
  • 特許6371994-遊技機 図000006
  • 特許6371994-遊技機 図000007
  • 特許6371994-遊技機 図000008
  • 特許6371994-遊技機 図000009
  • 特許6371994-遊技機 図000010
  • 特許6371994-遊技機 図000011
  • 特許6371994-遊技機 図000012
  • 特許6371994-遊技機 図000013
  • 特許6371994-遊技機 図000014
  • 特許6371994-遊技機 図000015
  • 特許6371994-遊技機 図000016
  • 特許6371994-遊技機 図000017
  • 特許6371994-遊技機 図000018
  • 特許6371994-遊技機 図000019
  • 特許6371994-遊技機 図000020
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6371994
(24)【登録日】2018年7月27日
(45)【発行日】2018年8月15日
(54)【発明の名称】遊技機
(51)【国際特許分類】
   A63F 5/04 20060101AFI20180806BHJP
【FI】
   A63F5/04 517
   A63F5/04 512Z
【請求項の数】8
【全頁数】34
(21)【出願番号】特願2014-217875(P2014-217875)
(22)【出願日】2014年10月25日
(65)【公開番号】特開2016-83179(P2016-83179A)
(43)【公開日】2016年5月19日
【審査請求日】2017年7月12日
(73)【特許権者】
【識別番号】390031772
【氏名又は名称】株式会社オリンピア
(74)【代理人】
【識別番号】100107113
【弁理士】
【氏名又は名称】大木 健一
(72)【発明者】
【氏名】小林 伊織
(72)【発明者】
【氏名】白田 健二
(72)【発明者】
【氏名】森下 恭好
【審査官】 牧 隆志
(56)【参考文献】
【文献】 特開2010−099526(JP,A)
【文献】 特開2014−193250(JP,A)
【文献】 特開2005−261786(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 5/04
A63F 7/02
(57)【特許請求の範囲】
【請求項1】
遊技に関する処理を行うメイン基板と、前記メイン基板からのコマンドに基づき演出に関する処理を行うサブ基板とを備える遊技機において、
前記メイン基板から前記サブ基板へ、前記サブ基板に予め定められた処理を行わせるためのコマンドが送信され、
前記コマンドの長さは予め定められ(以下、前記サブ基板に予め定められた処理を行わせるための前記コマンドの長さを「基準長」と記す)、
前記メイン基板は、
前記コマンドを前記サブ基板へ予め定められた間隔で送信するコマンド送信部を備え、
前記サブ基板は、
前記メイン基板から受けた前記コマンドを受信するコマンド受信部と、
前記コマンド受信部で受けた前記コマンドを保存する受信バッファと、
前記受信バッファから前記コマンドを読み出して解析し、前記サブ基板に予め定められた処理を行わせるコマンド解析部とを備え、
前記コマンド受信部は、前記コマンドの受信状況を調べ、前記コマンドを受信しているときは前記コマンドを前記受信バッファに記憶し、前記コマンドを受信していないときは受信無の信号を出力し、
前記コマンド解析部は、
前記コマンド受信部から前記受信無の信号を受けたとき、前記受信無の信号が連続する期間(以下「継続時間」)を予め定められた閾値と比較し、
前記継続時間が前記閾値と同じか又はそれよりも長くなったとき、前記コマンドの長さを調べ、
前記コマンドの長さが、予め定められた基準長に一致するときは、前記コマンドを解析して前記サブ基板に予め定められた処理を行わせ、
前記コマンドの長さが、予め定められた基準長と異なるときは、前記コマンドを破棄する、ことを特徴とする遊技機。
【請求項2】
前記コマンドの受信間隔の最小値を最小受信間隔、最大値を最大受信間隔とし、
前記コマンドの受信に要する時間をコマンド受信時間とし、
(閾値)<(最小受信間隔)−(コマンド受信時間)、
かつ、
(閾値)>(最大受信間隔)/2−(コマンド受信時間)
となるように前記閾値が定められていることを特徴とする請求項1記載の遊技機。
【請求項3】
前記コマンド送信部は、予め定められた間隔で発生するタイミングにおいて前記コマンドの送信処理を実行するものであり、
前記コマンドの受信間隔が略一定であるとし、
前記コマンドの受信に要する時間をコマンド受信時間とし、
(閾値)<(受信間隔)−(コマンド受信時間)、
かつ、
(閾値)>(受信間隔)/2−(コマンド受信時間)
となるように前記閾値が定められていることを特徴とする請求項1記載の遊技機。
【請求項4】
遊技に関する処理を行うメイン基板と、前記メイン基板からのコマンドに基づき演出に関する処理を行うサブ基板とを備える遊技機において、
前記メイン基板から前記サブ基板へ、前記サブ基板に予め定められた処理を行わせるためのコマンドが送信され、
前記コマンドの長さは予め定められ(以下、前記サブ基板に予め定められた処理を行わせるための前記コマンドの長さを「基準長」と記す)、
前記メイン基板は、
前記コマンドを前記サブ基板へ予め定められた間隔で送信するコマンド送信部を備え、
前記サブ基板は、
前記メイン基板から受けた前記コマンドを受信するコマンド受信部と、
前記コマンド受信部で受けた前記コマンドを保存する受信バッファと、
前記受信バッファから前記コマンドを読み出して解析し、前記サブ基板に予め定められた処理を行わせるコマンド解析部とを備え、
前記コマンド受信部は、前記コマンドの受信状況を調べ、前記コマンドを受信しているときは前記コマンドを前記受信バッファに記憶し、前記コマンドを受信していないときは受信無の信号を出力し、
前記コマンド解析部は、
予め定められた間隔のコマンド受信チェックタイミングで前記コマンド受信部から前記受信無の信号を受けたかどうか判定し、連続して前記受信無であると判定した回数を計数し、この回数(以下「受信無継続回数」)を予め定められた回数閾値と比較し、
前記受信無継続回数が前記回数閾値と同じか又はそれよりも多くなったとき、前記コマンドの長さを調べ、
前記コマンドの長さが、予め定められた基準長に一致するときは、前記コマンドを解析して前記サブ基板に予め定められた処理を行わせ、
前記コマンドの長さが、予め定められた基準長と異なるときは、前記コマンドを破棄する、ことを特徴とする遊技機。
【請求項5】
前記コマンドの受信間隔の最小値を最小受信間隔、最大値を最大受信間隔とし、
前記コマンドの受信に要する時間をコマンド受信時間とし、
(閾値)<(最小受信間隔)−(コマンド受信時間)、
かつ、
(閾値)>(最大受信間隔)/2−(コマンド受信時間)
となるように閾値が定められ、前記閾値を前記コマンド受信チェックタイミングの間隔で除したときの商を前記回数閾値としたことを特徴とする請求項4記載の遊技機。
【請求項6】
前記コマンド送信部は、予め定められた間隔で発生するタイミングにおいて前記コマンドの送信処理を実行するものであり、
前記コマンドの受信間隔が略一定であるとし、
前記コマンドの受信に要する時間をコマンド受信時間とし、
(閾値)<(受信間隔)−(コマンド受信時間)、
かつ、
(閾値)>(受信間隔)/2−(コマンド受信時間)
となるように閾値が定められ、前記閾値を前記コマンド受信チェックタイミングの間隔で除したときの商を前記回数閾値としたことを特徴とする請求項4記載の遊技機。
【請求項7】
予め定められた処理を行わせるための前記コマンド(この項において「正規コマンド」)とともに、前記メイン基板から前記サブ基板へ、前記サブ基板に何らの処理も行わせることのないダミーコマンドが送信され、
前記ダミーコマンドの長さは、前記正規コマンドの長さよりも短く、
前記メイン基板の前記コマンド送信部は、
送信すべき前記正規コマンドが存在するときは、前記正規コマンドを前記サブ基板へ送信し、
送信すべき前記正規コマンドが存在しないときは、前記ダミーコマンドを前記サブ基板へ送信することを特徴とする請求項1乃至請求項6いずれかに記載の遊技機。
【請求項8】
前記コマンド送信部は、予め定められた間隔で発生するタイミングにおいて前記コマンドの送信処理を実行するものであり、
前記メイン基板は、電源断からの復帰の際に前記コマンドの送信を禁止する禁止区間を設けるものであり、
前記コマンド送信部は、前記禁止区間の終了後の最初の前記タイミングでは前記コマンドの送信処理を実行せず、二回目以降の前記タイミングにおいて前記コマンドの送信処理を実行する、ことを特徴とする請求項1乃至請求項7いずれかに記載の遊技機。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スロットマシン等の遊技機に関し、特にメイン基板からサブ基板へコマンドを送る遊技機に関する。
【背景技術】
【0002】
スロットマシン等の遊技機にはメダルの投入口が設けられており、遊技者は所定の枚数のメダルを投入してゲームを楽しむことができる。遊技に必要なメダルは、遊技ホール内に設けられたメダル貸機等で借りることができ、所望の遊技機のメダル投入口に投入することによりゲームを開始することができる。
【0003】
従来の遊技機の動作は次のようなものであった。
先ず、スタートスイッチが操作されることにより、スタートスイッチがONとなる。これを受けて遊技機内部の当選判定手段により抽選処理が行われる。ここで所定の役に当選すると当選フラグがセットされる。回転リール(回胴)の回転が開始する。ストップボタンが操作されることにより、ストップボタンがONとなる。そして、対応する回胴の回転が停止する。全部の回胴に対応するストップボタンの操作が行われた後、当選フラグ成立中に当該当選フラグに対応する入賞図柄が有効入賞ライン上に揃ったか否か、すなわち、入賞が確定したか否かが判定される。入賞が確定したと判定された場合、入賞図柄に相当するメダルが払い出される。
【0004】
抽選処理の評価が例えば外れの場合は所定の図柄が揃わないように設定され(いわゆる蹴飛ばし)、当たりの場合はストップボタンが所定のタイミングで押下されることなどを条件に所定の図柄が揃うように設定される(いわゆる引き込み)。つまり、抽選処理において当選しているときのみ所定の条件の下で図柄が揃い入賞することにより、メダルが払い出されるが、当選しないときはストップボタンをどのように操作してもメダルが払い出されることはない。これはメダルの払い出しを一定確率に保つためである。これを実現するため抽選処理において乱数発生器が用いられている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2013−52286号公報 主制御回路から副制御回路へ送信すべきコマンドデータが無い場合には、正規コマンドデータである無操作コマンドデータを演出制御手段に送信する。常に、正規コマンドデータが必ず送信されるので、不正により偽のコマンドデータが送信されることを回避し、偽のコマンドデータによって遊技者に有利な報知演出が行われることを防止する。
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記遊技機において、所定の当選役に当選したとき、正解となる押し順で停止操作を行うことにより、特定の図柄組合せが表示され、この特定の図柄組合せが表示されたことに基づいて、リプレイが高確率で当選する状態とするとともに、当該状態において当選役を報知する状態(打順報知、詳細は後述)とするものがある。
【0007】
上記打順報知された状態において、一般遊技状態と比べて、当選役が「ハズレ」となる確率が減り、また、特に、メダルの払出しに係る当選役(小役)が入賞する確率が増えることから、その状態においては、払出されるメダルを増加させることができるため、ボーナスと同時に遊技者の興味を引き、その遊技性を高めるものとなっている。
【0008】
また、上記遊技機では、BB作動中に特定の当選役に当選していれば、BB終了後の一般遊技状態において上述した所定の当選役に当選したとき、正解となる押し順が報知されることとなっている。この報知は、上述のようにメイン基板からのコマンドを受信したサブ基板によって行われている。
【0009】
従来の遊技機では、メイン基板からサブ基板へ送信すべきコマンドが無い場合には、コマンド送信を行っていなかった。この点を突いて、メイン基板からサブ基板へのデータ伝送路に不正にアクセスし、上記報知を不正に行わせる、いわゆるゴト行為が行われることがある。
【0010】
具体的には、メイン基板からサブ基板へコマンドを送る伝送路に不正な基板を接続し、例えば、BB作動中において特定の当選役に当選していないにも関わらず、不正アクセスによってサブ基板に特定の当選役に当選したという情報を送信することで、上記報知を不正に行わせるものである。
【0011】
特許文献1は、上記不正を防止するために、メイン基板からサブ基板へ送信すべきコマンドデータが無い場合には、正規コマンドデータである無操作コマンドデータを演出制御手段に送信し、常に、正規コマンドデータが必ず送信されるようにする。これにより、不正なコマンドデータを送信する隙を無くしている。
【0012】
特許文献1において、コマンドデータが無い場合に送信される無操作コマンドデータは、正規コマンドデータであり、コマンドの構成の点で違いはない。特許文献1の段落0156乃至0158の記載によれば、コマンドデータ及び無操作コマンドデータは、各々が1バイトからなる8つのデータによって構成され、これら8つのデータによって1パケットを構成している。「コマンド種別」としては、「01H」〜「10H」の10種類あり、「10H」は、無操作コマンドに相当する。
【0013】
特許文献1によれば、不正なコマンドデータの送信を防止できるが、次のような課題が有る。
【0014】
(1)無操作コマンドデータも正規コマンドデータとしているため、正規コマンドの数が減ってしまう。上記例で言えば本来10種類のコマンドを定義できるはずのところ、無操作コマンドの分だけ減り、最大9種類のコマンドしか定義できない。
【0015】
(2)受信側(サブ基板)で、正規コマンドデータかそれとも無操作コマンドデータであるかを判別するためには、コマンドデータの中身を解析しなければならない。これでは破棄することになる無操作コマンドデータについても正規コマンドデータと同じ処理を適用することになり、処理が複雑になるとともにCPUの処理負荷が増えてしまう。
【0016】
無操作コマンドデータは意味のないコマンドであり、このような意味のないコマンドを送信することは、できれば避けたい。コマンドとコマンドの隙間に不正なコマンドデータを挿入されることが問題であるが、その隙間の大きさによっては無操作コマンドデータを送らずとも、受信側の処理で不正なコマンドを無効化することが可能である。
【0017】
本発明は上記課題を解決するためになされたもので、受信側の処理により上記不正なコマンドデータを無効化できる遊技機を提供することを目的とする。
【課題を解決するための手段】
【0018】
この発明は、遊技に関する処理を行うメイン基板と、前記メイン基板からのコマンドに基づき演出に関する処理を行うサブ基板とを備える遊技機において、
前記メイン基板から前記サブ基板へ、前記サブ基板に予め定められた処理を行わせるためのコマンドが送信され、
前記コマンドの長さは予め定められ(以下、前記サブ基板に予め定められた処理を行わせるための前記コマンドの長さを「基準長」と記す)、
前記メイン基板は、
前記コマンドを前記サブ基板へ予め定められた間隔で送信するコマンド送信部を備え、
前記サブ基板は、
前記メイン基板から受けた前記コマンドを受信するコマンド受信部と、
前記コマンド受信部で受けた前記コマンドを保存する受信バッファと、
前記受信バッファから前記コマンドを読み出して解析し、前記サブ基板に予め定められた処理を行わせるコマンド解析部とを備え、
前記コマンド受信部は、前記コマンドの受信状況を調べ、前記コマンドを受信しているときは前記コマンドを前記受信バッファに記憶し、前記コマンドを受信していないときは受信無の信号を出力し、
前記コマンド解析部は、
前記コマンド受信部から前記受信無の信号を受けたとき、前記受信無の信号が連続する期間(以下「継続時間」)を予め定められた閾値と比較し、
前記継続時間が前記閾値と同じか又はそれよりも長くなったとき、前記コマンドの長さを調べ、
前記コマンドの長さが、予め定められた基準長に一致するときは、前記コマンドを解析して前記サブ基板に予め定められた処理を行わせ、
前記コマンドの長さが、予め定められた基準長と異なるときは、前記コマンドを破棄する、ものである。
【0019】
例えば、
前記コマンドの受信間隔の最小値を最小受信間隔、最大値を最大受信間隔とし、
前記コマンドの受信に要する時間をコマンド受信時間とし、
(閾値)<(最小受信間隔)−(コマンド受信時間)、
かつ、
(閾値)>(最大受信間隔)/2−(コマンド受信時間)
となるように前記閾値が定められている。
【0020】
例えば、
前記コマンド送信部は、予め定められた間隔で発生するタイミングにおいて前記コマンドの送信処理を実行するものであり、
前記コマンドの受信間隔が略一定であるとし、
前記コマンドの受信に要する時間をコマンド受信時間とし、
(閾値)<(受信間隔)−(コマンド受信時間)、
かつ、
(閾値)>(受信間隔)/2−(コマンド受信時間)
となるように前記閾値が定められている。
【0021】
この発明は、遊技に関する処理を行うメイン基板と、前記メイン基板からのコマンドに基づき演出に関する処理を行うサブ基板とを備える遊技機において、
前記メイン基板から前記サブ基板へ、前記サブ基板に予め定められた処理を行わせるためのコマンドが送信され、
前記コマンドの長さは予め定められ(以下、前記サブ基板に予め定められた処理を行わせるための前記コマンドの長さを「基準長」と記す)、
前記メイン基板は、
前記コマンドを前記サブ基板へ予め定められた間隔で送信するコマンド送信部を備え、
前記サブ基板は、
前記メイン基板から受けた前記コマンドを受信するコマンド受信部と、
前記コマンド受信部で受けた前記コマンドを保存する受信バッファと、
前記受信バッファから前記コマンドを読み出して解析し、前記サブ基板に予め定められた処理を行わせるコマンド解析部とを備え、
前記コマンド受信部は、前記コマンドの受信状況を調べ、前記コマンドを受信しているときは前記コマンドを前記受信バッファに記憶し、前記コマンドを受信していないときは受信無の信号を出力し、
前記コマンド解析部は、
予め定められた間隔のコマンド受信チェックタイミングで前記コマンド受信部から前記受信無の信号を受けたかどうか判定し、連続して前記受信無であると判定した回数を計数し、この回数(以下「受信無継続回数」)を予め定められた回数閾値と比較し、
前記受信無継続回数が前記回数閾値と同じか又はそれよりも多くなったとき、前記コマンドの長さを調べ、
前記コマンドの長さが、予め定められた基準長に一致するときは、前記コマンドを解析して前記サブ基板に予め定められた処理を行わせ、
前記コマンドの長さが、予め定められた基準長と異なるときは、前記コマンドを破棄する、ものである。
【0022】
例えば、
前記コマンドの受信間隔の最小値を最小受信間隔、最大値を最大受信間隔とし、
前記コマンドの受信に要する時間をコマンド受信時間とし、
(閾値)<(最小受信間隔)−(コマンド受信時間)、
かつ、
(閾値)>(最大受信間隔)/2−(コマンド受信時間)
となるように閾値が定められ、前記閾値を前記コマンド受信チェックタイミングの間隔で除したときの商を前記回数閾値とする。
【0023】
例えば、
前記コマンド送信部は、予め定められた間隔で発生するタイミングにおいて前記コマンドの送信処理を実行するものであり、
前記コマンドの受信間隔が略一定であるとし、
前記コマンドの受信に要する時間をコマンド受信時間とし、
(閾値)<(受信間隔)−(コマンド受信時間)、
かつ、
(閾値)>(受信間隔)/2−(コマンド受信時間)
となるように閾値が定められ、前記閾値を前記コマンド受信チェックタイミングの間隔で除したときの商を前記回数閾値とする。
【0024】
予め定められた処理を行わせるための前記コマンド(この項において「正規コマンド」)とともに、前記メイン基板から前記サブ基板へ、前記サブ基板に何らの処理も行わせることのないダミーコマンドが送信され、
前記ダミーコマンドの長さは、前記正規コマンドの長さよりも短く、
前記メイン基板の前記コマンド送信部は、
送信すべき前記正規コマンドが存在するときは、前記正規コマンドを前記サブ基板へ送信し、
送信すべき前記正規コマンドが存在しないときは、前記ダミーコマンドを前記サブ基板へ送信するようにしてもよい。
【0025】
前記ダミーコマンドにより、前記コマンドの受信間隔を略一定となるようにできる。
【0026】
前記コマンド送信部は、予め定められた間隔で発生するタイミングにおいて前記コマンドの送信処理を実行するものであり、
前記メイン基板は、電源断からの復帰の際に前記コマンドの送信を禁止する禁止区間を設けるものであり、
前記コマンド送信部は、前記禁止区間の終了後の最初の前記タイミングでは前記コマンドの送信処理を実行せず、二回目以降の前記タイミングにおいて前記コマンドの送信処理を実行するようにしてもよい。
【0027】
あるいは、
この発明は、遊技に関する処理を行うメイン基板と、前記メイン基板からのコマンドに基づき演出に関する処理を行うサブ基板とを備える遊技機において、
前記メイン基板から前記サブ基板へ、前記サブ基板に予め定められた処理を行わせるためのコマンドが送信され、
前記メイン基板は、前記コマンドを前記サブ基板へ送信するコマンド送信部を備え、
前記サブ基板は、前記コマンドを受信し、前記コマンドを解析して前記サブ基板に予め定められた処理を行わせるコマンド受信部を備え、
前記コマンド送信部は、予め定められた間隔で発生するタイミングにおいて前記コマンドの送信処理を実行するものであり、
前記メイン基板は、電源断からの復帰の際に前記コマンドの送信を禁止する禁止区間を設けるものであり、
前記コマンド送信部は、前記禁止区間の終了後の最初の前記タイミングでは前記コマンドの送信処理を実行せず、二回目以降の前記タイミングにおいて前記コマンドの送信処理を実行する、ものである。
【0028】
あるいは、
前記メイン基板は、前記正規コマンドを記憶するリングバッファを備え、
前記コマンド送信部は、前記リングバッファの予め定められた位置の記憶内容を読み出し、前記記憶内容に基づき前記ダミーコマンドを生成する。
【0029】
あるいは、
前記メイン基板は、遊技に関する処理に係る設定を変更するための設定変更処理を実行するものであり、前記設定変更処理により前記リングバッファの内容がクリアされ、
前記コマンド送信部は、前記設定変更処理の後において、前記リングバッファに前記正規コマンドが記憶されたときに、前記ダミーコマンドを生成する。
【発明の効果】
【0030】
この発明によれば、サブ基板において、受信無の信号の継続時間を予め定められた閾値と比較し、前記継続時間が前記閾値よりも長くなったときコマンドを読み出し、そのコマンドの長さを調べ、前記コマンドの長さが、予め定められた基準長と異なるときは前記コマンドを破棄するようにしたので、不正なコマンドはその前又は後のコマンドと結合され、この結果破棄される。これにより、不正なコマンドがサブ基板で正規コマンドのように扱われることを防止できる。
【図面の簡単な説明】
【0031】
図1】前扉を閉めた状態を示すスロットマシンの正面図である。
図2】前扉を開いた状態を示すスロットマシンの正面図である。
図3】スロットマシンのブロック図である。
図4】スロットマシンの遊技処理のフローチャートである。
図5】スロットマシンのメイン基板のハードウエアブロック図である。
図6】メイン基板のブロック図である(コマンド送信処理に関する部分のみを示す)。
図7】コマンドバッファの説明図である。
図8図8(a)はコマンド(正規コマンド)の構造の説明図、図8(b)は発明の実施の形態に係るダミーコマンドの構造の説明図である。
図9】発明の実施の形態に係るコマンド送信処理(割込処理)のフローチャートである。
図10】メイン基板のコマンド送信処理(割込処理)のタイミングチャートである。
図11】サブ基板のブロック図である(コマンド受信処理に関する部分のみを示す)。
図12】発明の実施の形態に係るコマンド受信部の処理フローチャートである。
図13】発明の実施の形態に係るコマンド解析部のコマンド確定処理のフローチャートである。
図14】発明の実施の形態に係るコマンド解析部の処理フローチャートである。
図15】発明の実施の形態に係るコマンド送信及びコマンド受信についてのタイミングチャートである(不正コマンドが無い場合)。
図16】発明の実施の形態に係るコマンド送信及びコマンド受信についてのタイミングチャートである(不正コマンドが有る場合)。
図17図17(a)は最小受信間隔におけるGAP2(閾値)の最大値の説明図(タイミングチャート)、図17(b)は最大受信間隔におけるGAP2(閾値)の最小値の説明図(タイミングチャート)である。
図18】電源投入時におけるメイン基板のコマンド送信処理(割込処理)のタイミングチャートである(比較例)。
図19】発明の実施の形態に係る、電源投入時におけるメイン基板のコマンド送信処理(割込処理)のタイミングチャートである。
【発明を実施するための形態】
【0032】
図1は前扉を閉めた状態を示すスロットマシンの正面図、図2は前扉を180度開いた状態を示すスロットマシンの正面図を示す。
【0033】
図1及び図2中、100はスロットマシンを示すもので、このスロットマシン100は、図1に示すように、スロットマシン本体120と、このスロットマシン本体120の前面片側にヒンジ等により開閉可能に取り付けられた前扉130とを備えている。前記前扉130の前面には、図1に示すように、ほぼ中央にゲーム表示部131を設け、ゲーム表示部131の右下隅部に、遊技者がメダルを投入するためのメダル投入口132を設け、メダル投入口132の下側には、メダル投入口132から投入され、詰まってしまったメダルをスロットマシン100外に強制的に排出するためのリジェクトボタン133が設けられている。
【0034】
また、前記ゲーム表示部131の左下方には、ゲームを開始するためのスタートスイッチ134を設けてあり、3つの回胴のそれぞれに対応して3つのストップボタン140を設けてある。前扉の下端部中央には、メダルの払出し口135を設けてある。前記ゲーム表示部131の上側には、液晶表示装置LCDが設けてある。
【0035】
スロットマシン本体120の内部には、図2に示すように、その内底面に固定され、内部に複数のメダルを貯留して、貯留したメダルを前扉130の前面に設けた払出し口135に1枚ずつ払い出すためのホッパ装置121が設置されている。このホッパ装置121の上部には、上方に向けて開口し、内部に複数のメダルを貯留するホッパタンク122を備えている。スロットマシン本体120の内部には、前扉130を閉めたときにゲーム表示部131が来る位置に三個の回胴からなるリール(回胴)ユニット203が設置されている。リールユニット203は、外周面に複数種類の図柄が配列されている3つの回胴(第1回胴〜第3回胴)を備えている。ゲーム表示部131には開口部が設けられていて、それを通して遊技者が前記リールユニット203の各回転回胴の図柄を見ることができるようになっている。ホッパ装置121の左側には電源部205が設けられている。
【0036】
前記前扉130の裏面には、図2に示すように、メダル(コイン)セレクタ1が、前扉130の前面に設けられたメダル投入口132の裏側に取り付けられている。このメダルセレクタ1は、メダル投入口132から投入されたメダルの通過を検出しながら、当該メダルをホッパ装置121に向かって転動させ、外径が所定寸法と違う異径メダルや、鉄又は鉄合金で作製された不正メダルを選別して排除するとともに、1ゲームあたりに投入可能な所定枚数以上のメダルを選別して排除するための装置である。
【0037】
また、メダルセレクタ1の下側には、図2に示すように、その下部側を覆って前扉130の払出し口135に連通する導出路136が設けられている。メダルセレクタ1により振り分けられたメダルは、この導出路136を介して払出し口135から遊技者に返却される。
【0038】
図3は発明の実施の形態に係るスロットマシン100の機能ブロック図を示す。
この図において電源系統についての表示は省略されている。図示しないが、スロットマシンは商用電源(AC100V)から直流電源(+5Vなど)を発生するための電源部を備える。
【0039】
スロットマシン100は、その主要な処理装置としてメイン基板(処理部)10とこれからコマンドを受けて動作するサブ基板20とを備える。なお、少なくともメイン基板10は、外部から接触不能となるようにケース内部に収容され、これら基板を取り外す際に痕跡が残るように封印処理が施されている。
【0040】
メイン基板10は、遊技者の操作を受けて内部抽選を行ったり、リールの回転・停止やメダルの払い出しなどの処理(遊技処理)を行うためのものである。メイン基板10は、予め設定されたプログラムに従って制御動作を行うCPUと、前記プログラムを記憶する記憶手段であるROMおよび処理結果などを一時的に記憶するRAMを含む。
【0041】
サブ基板20は、メイン基板10からコマンド信号を受けて内部抽選の結果を報知したり各種演出を行うためのものである。サブ基板20は、前記コマンド信号に応じた予め設定されたプログラムに従って制御動作を行うCPUと、前記プログラムを記憶する記憶手段であるROMおよび処理結果などを一時的に記憶するRAMを含む。
【0042】
前記コマンド信号に基づきサブ基板20が行う動作には、打順報知がある。打順報知は、遊技機において、所定の当選役に当選したとき、正解となる押し順で停止操作を行うことにより、特定の図柄組合せが表示され、この特定の図柄組合せが表示されたことに基づいて、リプレイが高確率で当選する状態とするとともに、当該状態において当選役を報知する状態とするものである。
【0043】
打順報知は、例えば次のようなものである。
【0044】
メイン基板が行う内部抽選で選択される当選領域(メモリ上のエリア)には、複数の小役が重複当選している領域があり、そのエリアに当選した場合に、正解打順で停止操作が行われると、重複当選した複数の小役のうち、配当の高い小役が入賞するようになっている。通常、遊技者は正解打順がわからないため、正解打順での停止操作をすることができずに、配当の高い小役の入賞による利益を得ることができない。そこで、所定の場合に正解打順を報知させるために、特定の当選役に当選したという情報(コマンド)をメイン基板からサブ基板へ送る。これに基づきサブ基板が遊技者にとって有利な報知として、内部抽選で当選したエリアの正解打順の報知を行うことで、遊技者は正解打順で停止操作を行い、配当の高い小役の入賞による利益を得ることができる。
【0045】
コマンドの流れはメイン基板10からサブ基板20への一方のみであり、逆にサブ基板20からメイン基板10へコマンド等が出されることはない。
【0046】
メイン基板10には、ベットスイッチBET、スタートスイッチ134,ストップボタン140,リールユニット(リール駆動装置を含む)203,リール位置検出回路71、ホッパ駆動部80、ホッパ81及びホッパ81から払い出されたメダルの枚数を数えるためのメダル検出部82(これらは前述のホッパ装置121を構成する)が接続されている。サブ基板20には液晶表示装置の制御用の液晶制御基板200、スピーカ基板201、LED基板202などの周辺基板(デバイス制御基板)が接続されている。周辺基板とは、サブ基板20により制御されるものであり、主に映像、光、音響により演出を行うものである。
【0047】
メイン基板10には、さらに、メダルセレクタ1のメダルセンサS1及びS2が接続されている。
【0048】
メダルセレクタ1には、メダルを計数するためのメダルセンサS1及びS2が設けられている。メダルセンサS1及びS2は、メダルセレクタ1に設けられた図示しないメダル通路の下流側(出口近傍)に設けられている(メダル通路の上流側はメダル投入口132に連通している)。2つのメダルセンサS1とS2は、メダルの進行方向に沿って所定間隔を空けて並べて設けられている。メダルセンサS1、S2は、例えば、互いに対向した発光部と受光部とを有して断面コ字状に形成され、その検出光軸をメダル通路内に上方から臨ませて位置するフォトインタラプタである。各フォトインタラプタにより、途中で阻止されずに送られてきたメダルの通過が検出される。なお、フォトインタラプタを2つ隣接させたのは、メダル枚数を検出するだけでなく、メダルの通過が正常か否かを監視するためである。すなわち、フォトインタラプタを2つ隣接させて設けることにより、メダルの通過速度や通過方向を検出することができ、これによりメダル枚数だけでなく、逆方向に移動する不正行為を感知することができる。
【0049】
ホッパ駆動部80は、ホッパ81を回転駆動して、メイン基板10によって指示された払出数のメダルを払い出す動作を行う。遊技機は、メダルを1枚払い出す毎に作動するメダル検出部82を備えており、メイン基板10は、メダル検出部82からの入力信号に基づいてホッパ81から実際に払い出されたメダルの数を管理することができる。
【0050】
投入受付手段1050は、メダルセレクタ1のメダルセンサS1とS2の出力を受け、遊技毎にメダルの投入を受け付けて、規定投入数に相当するメダルが投入されたことに基づいて、スタートスイッチ134に対する第1リール〜第3リールの回転開始操作を許可する処理を行う。なお、スタートスイッチ134の押下操作が、第1リール〜第3リールの回転を開始させる契機となっているとともに、内部抽選を実行する契機となっている。また、遊技状態に応じて規定投入数を設定し、通常状態およびボーナス成立状態では規定投入数を3枚に設定し、ボーナス状態では規定投入数を1枚に設定する。
【0051】
メダルが投入されると、遊技状態に応じた規定投入数を限度として、投入されたメダルを投入状態に設定する。あるいは、遊技機にメダルがクレジットされた状態で、ベットスイッチBETが押下されると、遊技状態に応じた規定投入数を限度して、クレジットされたメダルを投入状態に設定する。メダルの投入を受け付けるかどうかは、メイン基板10が制御する。メダルの投入を受け付ける状態になっていないときは(許可されていないときは)、メダルを投入してもメダルセンサS1、S2でカウントされず、そのまま返却される。同様に、メイン基板10はベットスイッチBETの有効/無効を制御する。ベットスイッチBETが有効になっていないときは(許可されていないときは)、ベットスイッチBETを押下しても、それは無視される。
【0052】
メイン基板10は、乱数発生手段1100を内蔵する。乱数発生手段1100は、抽選用の乱数値を発生させる手段である。乱数値は、例えば、インクリメントカウンタ(所定のカウント範囲を循環するように数値をカウントするカウンタ)のカウント値に基づいて発生させることができる。なお本実施形態において「乱数値」には、数学的な意味でランダムに発生する値のみならず、その発生自体は規則的であっても、その取得タイミング等が不規則であるために実質的に乱数として機能しうる値も含まれる。
【0053】
内部抽選手段1200は、遊技者がスタートスイッチ134からのスタート信号に基づいて、役の当否を決定する内部抽選を行う。すなわち、メイン基板10のメモリ(図示せず)に記憶されている抽選テーブル(図示せず)を選択する抽選テーブル選択処理、乱数発生手段1100から得た乱数の当選を判定する乱数判定処理、当選の判定結果で大当たりなどに当選したときにその旨のフラグを設定する抽選フラグ設定処理などを行う。
【0054】
抽選テーブル選択処理では、図示しない記憶手段(ROM)に格納されている複数の抽選テーブル(図示せず)のうち、いずれの抽選テーブルを用いて内部抽選を行うかを決定する。抽選テーブルでは、複数の乱数値(例えば、0〜65535の65536個の乱数値)のそれぞれに対して、リプレイ、小役(ベル、チェリー)、レギュラーボーナス(RB:ボーナス)、およびビッグボーナス(BB:ボーナス)などの各種の役が対応づけられている。また、遊技状態として、通常状態、ボーナス成立状態、およびボーナス状態が設定可能とされ、さらにリプレイの抽選状態として、リプレイ無抽選状態、リプレイ低確率状態、リプレイ高確率状態が設定可能とされる。
【0055】
乱数判定処理では、スタートスイッチ134からのスタート信号に基づいて、遊技毎に前記乱数発生手段(図示せず)から乱数値(抽選用乱数)を取得し、取得した乱数値について前記抽選テーブルを参照して役に当選したか否かを判定する。
【0056】
抽選フラグ設定処理では、乱数判定処理の結果に基づいて、当選したと判定された役の抽選フラグを非当選状態(第1のフラグ状態、オフ状態)から当選状態(第2のフラグ状態、オン状態)に設定する。2種類以上の役が重複して当選した場合には、重複して当選した2種類以上の役のそれぞれに対応する抽選フラグが当選状態に設定される。抽選フラグの設定情報は、記憶手段(RAM)に格納される。
【0057】
入賞するまで次回以降の遊技に当選状態を持ち越し可能な抽選フラグ(持越可能フラグ)と、入賞の如何に関わらず次回以降の遊技に当選状態を持ち越さずに非当選状態にリセットされる抽選フラグ(持越不可フラグ)とが用意されていることがある。この場合、前者の持越可能フラグが対応づけられる役としては、レギュラーボーナス(RB)およびビッグボーナス(BB)があり、それ以外の役(例えば、小役、リプレイ)は後者の持越不可フラグに対応づけられている。すなわち抽選フラグ設定処理では、内部抽選でレギュラーボーナスに当選すると、レギュラーボーナスの抽選フラグの当選状態を、レギュラーボーナスが入賞するまで持ち越す処理を行い、内部抽選でビッグボーナスに当選すると、ビッグボーナスの抽選フラグの当選状態を、ビッグボーナスが入賞するまで持ち越す処理を行う。このときメイン基板10は、内部抽選機能により、レギュラーボーナスやビッグボーナスの抽選フラグの当選状態が持ち越されている遊技でも、レギュラーボーナスおよびビッグボーナス以外の役(小役およびリプレイ)についての当否を決定する内部抽選を行っている。すなわち抽選フラグ設定処理では、レギュラーボーナスの抽選フラグの当選状態が持ち越されている遊技において、内部抽選で小役あるいはリプレイが当選した場合には、既に当選しているレギュラーボーナスの抽選フラグと内部抽選で当選した小役あるいはリプレイの抽選フラグとからなる2種類以上の役に対応する抽選フラグを当選状態に設定し、ビッグボーナスの抽選フラグの当選状態が持ち越されている遊技において、内部抽選で小役あるいはリプレイが当選した場合には、既に当選しているビッグボーナスの抽選フラグと内部抽選で当選した小役あるいはリプレイの抽選フラグとからなる2種類以上の役に対応する抽選フラグを当選状態に設定する。
【0058】
リプレイ処理手段1600は、所定条件下で内部抽選におけるリプレイの当選確率を変動させる制御を行うことがある。リプレイ処理手段1600については、後に再度説明を加える。リプレイの抽選状態として、リプレイが内部抽選の対象から除外されるリプレイ無抽選状態、リプレイの当選確率が約1/7.3に設定されるリプレイ低確率状態、およびリプレイの当選確率が約1/6に設定されるリプレイ高確率状態という複数種類の抽選状態を設定可能とされている。リプレイの抽選状態を変化させることにより、内部抽選におけるリプレイの当選確率を変動させる。
【0059】
リール制御手段1300は、遊技者がスタートスイッチ134の押下操作(回転開始操作)によるスタート信号に基づいて、第1リール〜第3リールをステッピングモータにより回転駆動して、第1リール〜第3リールの回転速度が所定速度(約80rpm:1分間あたり約80回転となる回転速度)に達した状態において回転中のリールにそれぞれ対応する3つのストップボタン140の押下操作(停止操作)を許可する制御を行うとともに、ステッピングモータにより回転駆動されている第1リール〜第3リールを抽選フラグの設定状態(内部抽選の結果)に応じて停止させる制御を行う。
【0060】
また、リール制御手段1300は、3つのストップボタン140に対する押下操作(停止操作)が許可(有効化)された状態において、遊技者が3つのストップボタン140を押下することにより、そのリール停止信号に基づいて、リールユニット203のステッピングモータへの駆動パルス(モータ駆動信号)の供給を停止することにより、第1リール〜第3リールの各リールを停止させる制御を行う。
【0061】
すなわち、リール制御手段1300は、3つのストップボタン140の各ボタンが押下される毎に、第1リール〜第3リールのうち押下されたボタンに対応するリールの停止位置を決定して、決定された停止位置でリールを停止させる制御を行っている。具体的には、記憶手段(ROM)に記憶されている停止制御テーブル(図示せず)を参照して3つのストップボタンの押下タイミングや押下順序等(停止操作の態様)に応じた第1リール〜第3リールの停止位置を決定し、決定された停止位置で第1リール〜第3リールを停止させる制御を行う。
【0062】
ここで停止制御テーブルでは、ストップボタン140の作動時点における第1リール〜第3リールの位置(押下検出位置)と、第1リール〜第3リールの実際の停止位置(または押下検出位置からの滑りコマ数)との対応関係が設定されている。抽選フラグの設定状態に応じて、第1リール〜第3リールの停止位置を定めるための停止制御テーブルが用意されることもある。
【0063】
遊技機では、リールユニット203がフォトセンサからなるリールインデックス(図示せず)を備えており、リール制御手段1300は、リールが1回転する毎にリールインデックスで検出される基準位置信号に基づいて、リールの基準位置(リールインデックスによって検出されるコマ)からの回転角度(ステップモータの回転軸の回転ステップ数)を求めることによって、現在のリールの回転状態を監視することができるようになっている。すなわち、メイン基板10は、ストップボタン140の作動時におけるリールの位置を、リールの基準位置からの回転角度を求めることにより得ることができる。
【0064】
リール制御手段1300は、いわゆる引き込み処理と蹴飛ばし処理とをリールを停止させる制御として行っている。引き込み処理とは、抽選フラグが当選状態に設定された役に対応する図柄が有効な入賞判定ライン上に停止するように(当選した役を入賞させることができるように)リールを停止させる制御処理である。一方蹴飛ばし処理とは、抽選フラグが非当選状態に設定された役に対応する図柄が有効な入賞判定ライン上に停止しないように(当選していない役を入賞させることができないように)リールを停止させる制御処理である。すなわち本実施形態の遊技機では、上記引き込み処理及び蹴飛ばし処理を実現させるべく、抽選フラグの設定状態、ストップボタン140の押下タイミング、押下順序、既に停止しているリールの停止位置(表示図柄の種類)などに応じて各リールの停止位置が変化するように停止制御テーブルが設定されている。このように、メイン基板10は、抽選フラグが当選状態に設定された役の図柄を入賞の形態で停止可能にし、一方で抽選フラグが非当選状態に設定された役の図柄が入賞の形態で停止しないように第1リール〜第3リールを停止させる制御を行っている。
【0065】
本実施形態の遊技機では、第1リール〜第3リールが、ストップボタン140が押下された時点から190ms以内に、押下されたストップボタンに対応する回転中のリールを停止させる制御状態に設定されている。すなわち回転している各リールの停止位置を決めるための停止制御テーブルでは、ストップボタン140の押下時点から各リールが停止するまでに要するコマ数が0コマ〜4コマの範囲(所定の引き込み範囲)で設定されている。
【0066】
入賞判定手段1400は、第1リール〜第3リールの停止態様に基づいて、役が入賞したか否かを判定する処理を行う。具体的には、記憶手段(ROM)に記憶されている入賞判定テーブルを参照しながら、第1リール〜第3リールの全てが停止した時点で入賞判定ライン上に表示されている図柄組合せが、予め定められた役の入賞の形態であるか否かを判定する。
【0067】
入賞判定手段1400は、その判定結果に基づいて、入賞時処理を実行する。入賞時処理としては、例えば、小役が入賞した場合にはホッパ81を駆動してメダルの払出制御処理が行われるか、あるいはクレジットの増加され(規定の最大枚数例えば50枚まで増加され、それを超えた分だけ実際にメダル払い出される)、リプレイが入賞した場合にはリプレイ処理が行われ、ビッグボーナスやレギュラーボーナスが入賞した場合には遊技状態を移行させる遊技状態移行制御処理が行われる。
【0068】
払出制御手段1500は、遊技結果に応じたメダルの払い出しに関する払出制御処理を行う。具体的には、小役が入賞した場合に、役毎に予め定められている配当に基づいて遊技におけるメダルの払出数を決定し、決定された払出数に相当するメダルを、ホッパ駆動部80でホッパ81を駆動して払い出させる。この際に、ホッパ81に内蔵される図示しないモータに電流が流れることになる。
【0069】
メダルのクレジット(内部貯留)が許可されている場合には、ホッパ81によって実際にメダルの払い出しを行う代わりに、記憶手段(RAM)のクレジット記憶領域(図示省略)に記憶されているクレジット数(クレジットされたメダルの数)に対して払出数を加算するクレジット加算処理を行って仮想的にメダルを払い出す処理を行う。
【0070】
リプレイ処理手段1600は、リプレイが入賞した場合に、次回の遊技に関して遊技者の所有するメダルの投入を要さずに前回の遊技と同じ準備状態に設定するリプレイ処理(再遊技処理)を行う。リプレイが入賞した場合には、遊技者の手持ちのメダル(クレジットメダルを含む)を使わずに前回の遊技と同じ規定投入数のメダルが自動的に投入状態に設定される自動投入処理が行われ、遊技機が前回の遊技と同じ入賞判定ラインを有効化した状態で次回の遊技における回転開始操作(遊技者によるスタートスイッチ134の押下操作)を待機する状態に設定される。
【0071】
また、メイン基板10は、通常状態、ボーナス成立状態、およびボーナス状態の間で遊技状態を移行させる制御を行うことがある(遊技状態移行制御機能)。遊技状態の移行条件は、1の条件が定められていてもよいし、複数の条件が定められていてもよい。複数の条件が定められている場合には、複数の条件のうち1の条件が成立したこと、あるいは複数の条件の全てが成立したことに基づいて、遊技状態を他の遊技状態へ移行させることができる。
【0072】
通常状態は、複数種類の遊技状態の中で初期状態に相当する遊技状態で、通常状態からはボーナス成立状態への移行が可能となっている。ボーナス成立状態は、内部抽選でビッグボーナスあるいはレギュラーボーナスに当選したことを契機として移行する遊技状態である。ボーナス成立状態では、通常状態における内部抽選でビッグボーナスが当選した場合、ビッグボーナスが入賞するまでビッグボーナスに対応する抽選フラグが当選状態に維持され、通常状態における内部抽選でレギュラーボーナスが当選した場合、レギュラーボーナスが入賞するまでレギュラーボーナスに対応する抽選フラグが当選状態に維持される。ボーナス状態では、ボーナス遊技によって払い出されたメダルの合計数により終了条件が成立したか否かを判断し、入賞したボーナスの種類に応じて予め定められた払出上限数を超えるメダルが払い出されると、ボーナス状態を終了させて、遊技状態を通常状態へ復帰させる。
【0073】
リールユニット203は、図示しない3つのリールを備えるが、3つのリールそれぞれにひとつづつステッピングモータが取り付けられている。ステッピングモータは、回転子(ロータ)として歯車状の鉄心あるいは永久磁石を備え、固定子(ステータ)として複数の巻線(コイル)を備え、電流を流す巻線を切り替えることによって回転動作させるものである。すなわち、固定子の巻線に電流を流して磁力を発生させ、回転子を引きつけることで回転するものである。回転軸を指定された角度で停止させることが可能なことから、スロットマシンのリールの回転駆動に使用されている。複数の巻線がひとつの相を構成する。相の数として、例えば、2つ(二相)、4つ(4相)、5つ(5相)のものもある。
【0074】
次に、遊技機における遊技処理について図4を参照して説明を加える。
一般的に、遊技機において、メダルの投入(クレジットの投入)に始まり、払い出しが終了するまで(又はクレジット数の増加が終了するまで)が一遊技である。一遊技が終了するまでは次回の遊技に進めないという決まりがある。
【0075】
先ず、規定枚数のメダルが投入されることでスタートスイッチ134が有効になり、図4の処理が開始される。
【0076】
ステップS1において、スタートスイッチ134が操作されることにより、スタートスイッチ134がONとなる。そして、次のステップS2に進む。
【0077】
ステップS2において、メイン基板10により抽選処理が行われる。そして、次のステップS3に進む。
【0078】
ステップS3において、第1リール〜第3リールの回転が開始する。そして、次のステップS4に進む。
【0079】
ステップS4において、ストップボタン140が操作されることにより、ストップボタン140がONとなる。そして、次のステップS5に進む。
【0080】
ステップS5において、第1リール〜第3リールのうち押下されたストップボタン140に対応するリールについて回転停止処理が行われる。そして、次のステップS6に進む。
【0081】
ステップS6において、三個のリールに対応するストップボタン140の操作が行われたか否かが判定される。そして、三個のリールに対応する3つのストップボタン140すべての操作が行われたと判定された場合、次のステップS7に進む。
【0082】
ステップS7において、抽選フラグ成立中に当該抽選フラグに対応する入賞図柄が有効入賞ライン上に揃ったか否か、すなわち、入賞が確定したか否かが判定される。そして、入賞が確定したと判定された場合、次のステップS8に進む。なお、入賞が確定しなかったときは、抽選フラグが成立していてもメダルの払い出しは行われない。
【0083】
ステップS8において、入賞図柄に相当するメダルが払い出される。
【0084】
メダルの投入からステップS8の実行完了までが、一遊技である。ステップS8の待機処理が終了すると、処理はフローチャートの最初に戻る。言い換えれば、次の遊技が可能な状態になる(次遊技へ移行する)。
【0085】
図5は、メイン基板10のハードウエア構成の説明図である。メイン基板10は、実際には図5のハードウエア構成で実現される。すなわち、複数のビット(配線)からなるBUSに、CPU(処理装置)、ROM(不揮発性記憶部)、メモリRWM(読み出し及び書き込み可能なメモリ)及びI/O(入出力装置)、タイマ回路TMなどが接続されている。
【0086】
図5のCPUは、予め定められたプログラムに従い、複数の処理を所定の順番で繰り返し実行するメイン処理と、予め定められた間隔で行われる割込処理とを実行する。
【0087】
タイマ回路TMは、処理部CPUに対して割込を一定間隔でかけるものであり、例えば専用のICなどのハードウエアで実現されるが、ソフトウエア(プログラム)で実現するようにしてもよい。I/Oは、例えば通信処理用のICであり、所定のプロトコルにしたがってデータ通信を行う。図示しないレジスタにアドレス及びデータを設定することで、サブ基板20との通信を自動的に行う。
【0088】
CPUは、電源が投入されると、データバスを介してROMの所定エリアに格納された分周用のデータをタイマ回路TMに送信する。タイマ回路TMは、受信した分周用のデータを基に割込時間を決定し、この割込時間ごとに、割込要求をCPUに送信する。CPUは、この割込要求を契機に、各センサ等の監視などの割込処理を実行する。例えば、CPUのシステムクロックを8MHz、タイマ回路TMの分周値を1/256、ROMの分周用のデータを47に設定した場合、この割込の基準時間は、256×47÷8MHz=1.504msとなる。
【0089】
<コマンド送信装置>
図6は、発明の実施の形態に係る送信装置のブロック図である。図6はメイン基板10において実現される機能のブロック図であり、発明の実施の形態に関連する部分のみを示している。
【0090】
30は、予め定められた数のコマンドを一時的に保存するコマンドバッファである。コマンドバッファ30は先入れ先出しバッファ(FIFO)であり、所定のデータ(コマンド)を記憶し、記憶したデータをその順番で出力するものである。
【0091】
31は、予め定められたコマンドを生成するコマンド生成部である。コマンドの生成手順は公知であるので、その説明は省略する。また、コマンドの種類及び内容は公知であるので、その説明も省略する。
【0092】
32は、少なくとも、様々なコマンドをコマンドバッファ30に書き込むコマンド書込部である。
【0093】
34は、コマンドバッファ30から所定のコマンドを読み出してサブ基板20へ送信するコマンド送信部である。コマンド送信部34は、例えば通信処理用のICであり、所定の割込タイミングで処理を開始し、コマンドバッファ30からコマンドを読み出してサブ基板20へ送る。
【0094】
コマンドの受信間隔、すなわち送信されるコマンドの間隔は、(最小受信間隔)と(最大受信間隔)の間であり(伝播時間は無視している)、これらは(コマンド確定に要する時間)の一部であるGAP2(後述の図17及びその説明参照)が存在するように定められる。好ましくは、コマンド送信間隔は一定である(例えば図10)。
【0095】
コマンド送信間隔が大きくばらつくようなときには、ダミーコマンドを送信するようにしてもよい。この場合、送信されるコマンドには正規コマンド(サブ基板20に受信され解析されて所定の処理を行うためのもの)とダミーコマンド(サブ基板20で受信されるが破棄され、何らの処理も行わないもの)がある。ダミーコマンドについては後にさらに説明を加える。なお、以下の説明において特に断らない場合は、単に「コマンド」と記したときは正規コマンドを意味するものとする。
【0096】
図7は、コマンドバッファ30の説明図である。コマンドバッファ30は、先入れ先出しバッファであるが、環状のリングバッファとして構成されている。リングバッファは公知であるので、その説明は省略する。コマンド書込部32は、コマンドバッファ30の最後(BF128)にコマンドを書き込んだ後は最初に戻り(BF1)、コマンドの書き込みを続ける。図7の例では、コマンドバッファ30は128バイトの記憶領域(BF1〜BF128)をもつ。
【0097】
図8(a)はコマンド(正規コマンド)の構造を示す。コマンドは、4バイトのコマンド本体とこれら4バイトのチェックサムを格納するチェックサムの1バイトの合計5バイトからなる。コマンド(正規コマンド)の長さは予め定められている(正規コマンドの長さを「基準長」と記すことがある。図8の例では「基準長」=5バイト)。
【0098】
図8(b)はダミーコマンドの構造を示す。ダミーコマンドは、3バイトのコマンド本体とこれら3バイトのチェックサムを格納するチェックサムの1バイトの合計4バイトからなる。
【0099】
後述のように、ダミーコマンドは、これを受信したサブ基板20において破棄されるものであり、そのためにあえてコマンド(正規コマンド)とは異なる構造を採用している。この点から言えば、ダミーコマンドはその本体が1バイト以上、かつ、正規コマンドの4バイト以外であれば(要するに合計5バイトでなければ)何でもよい。
【0100】
しかし、好ましくは、ダミーコマンドのバイト数は次の条件を満たすことが好ましい。
【0101】
(条件1)連続する2つのそれぞれ別個のコマンド(正規コマンド又はダミーコマンド)を隙間なく受信すると、サブ基板20はひとつのコマンドと判定して破棄し、この結果、コマンドが失われることがある(隙間については図13及びその説明も参照されたい)。これを避けるために、ダミーコマンドに続けてコマンド(正規コマンド)を送信した場合に受信側においてそれらの間に隙間が生じるように、ダミーコマンドは、隙間よりも短くする。上記例では、ダミーコマンド本体をコマンド本体4バイトよりも短い、1、2、3バイトのいずれかにすればよい。長くすると隙間がなくなるおそれがある。一般的には、ダミーコマンドを挿入する前のコマンド間の隙間の長さをGAP(バイト)、としたとき、ダミーコマンド長<GAPとする。なお、後述のようにコマンド受信チェックを所定間隔で行っており、この間隔分の誤差が生じる。したがって隙間を確実に設けるように、この間隔の1、2個分のマージンを設けることが好ましい。
【0102】
(条件2)上記(条件1)のようにすれば正規コマンドとダミーコマンドの間に隙間が生じるが、この隙間に不正なコマンドを挿入できない程度にダミーコマンドを長くする。上記(条件1)の例では、ダミーコマンド本体は1、2、3バイトのいずれかであったから、3バイトが好ましい。一般的には、正規コマンド長>(GAP−ダミーコマンド長)とする。(GAP−ダミーコマンド長)は、ダミーコマンド挿入後の隙間の最大長である。マージンを設ける点は同様である。
【0103】
なお、正規コマンドの数が減り、サブ基板20の処理負荷が増えるという問題が生じるが、ダミーコマンドの長さを正規コマンドの長さと同じにしてもよい。
【0104】
コマンドバッファ30はリングバファであり、1つのコマンド(正規コマンド)に対して4バイトの領域を使用するから、32個のコマンドが書き込まれるとコマンドバッファ30は一杯になり、これ以降は上書きされていく(上書きされる前に送信されるので問題ない)。
【0105】
ダミーコマンド本体として、例えば、コマンドバッファ30の任意の3バイトが使用される。例えば、図7のBF1〜BF3の記憶内容が使用される。コマンドバッファ30の内容は常に更新されているので、ダミーコマンドの内容も変化する。これによりダミーコマンドであるかどうかの判別を困難にでき、不正行為をやりにくくできる。
【0106】
<コマンド送信処理>
図9は、メイン基板10のコマンド送信処理のフローチャートである。図10は、コマンド送信のタイミングを説明するためのタイミングチャートである。以下、これらの図に基づき、発明の実施の形態に係るコマンド送信処理を説明する。
【0107】
図10において、Tは割込処理の間隔であり、例えば1.5msである。t1、t2、t3、t4、・・・が割込処理の始期(割込処理開始タイミング)である。図9のコマンド送信処理は、2回に1回実行される。例えば、図10のt2においてコマンド送信処理が開始される(t4においても同様である)。その間隔は3msである。このため、コマンド(ダミーコマンドを含む)の送信間隔は3msとなる。なお、t2などにおいてコマンド(正規コマンド)が送信されるか、ダミーコマンドが送信されるかは、図9のST11の判定結果に従う。
【0108】
図9を参照して処理手順を説明する。
【0109】
ST10:コマンド送信部34は、コマンド送信タイミングであるかどうか判定する。
図10のt2とt4であればYESとなりST11に進み、t1とt3であればNOとなり、図10の処理を終える。
【0110】
ST11:コマンド送信部34は、コマンドバッファ30を調べ未送信コマンドがあるかどうか判定する。
未送信コマンドがあるかどうかは例えばリングバッファのインデックスに基づき判定するが、この処理は公知であるので説明は省略する。
【0111】
ST12:未送信コマンドがあるとき(ST11でYES)、コマンド送信部34はコマンドバッファ30からコマンド(4バイト)を読出し、これのチェックサムを求めて追加し(図8(a))、サブ基板20へ送信する(例えば図10のt2)。
【0112】
ST13:未送信コマンドがないとき(ST11でNO)、コマンド送信部34はコマンドバッファ30から3バイトのデータ(例えば先頭の3バイトBF1〜BF3)を読出し、これのチェックサムを求めて追加し(図8(b))、サブ基板20へ送信する(例えば図10のt2)。
【0113】
なお、抽選テーブルを選択するための設定変更時においては、コマンドバッファ30の内容BF1〜BF128が全て0で埋められる。このため、設定変更時においてその先頭の3バイトBF1〜BF3に基づき生成されるダミーコマンドは、全てのビットが0である特殊なものとなる。このような特殊なコマンドを送信すると、メイン基板10からサブ基板20への通信を傍受している不正行為者に、遊技機が設定変更中であると容易に気づかせてしまう。これは好ましくないので、ダミーコマンドの送信は、設定変更が終了した後であって、正規コマンドが生成されてコマンドバッファ30の少なくともBF1〜BF3が0以外になってから行うことが好ましい。この点については、後に再度説明を加える。
【0114】
<コマンド受信装置>
次にコマンド受信装置について説明を加える。コマンド受信装置(サブ基板20)の説明においては、「コマンド」は、上記と異なり、特に断らない限り正規コマンドとダミーコマンドの両方を含むものとする。受信側において正規コマンドとダミーコマンドを区別できるのは判定処理(図12のST22)を行った後であるので、それ以前は受信したコマンドは正規コマンド又はダミーコマンドのいずれかであるとして扱うことが妥当である。
【0115】
サブ基板20は、メイン基板10と同様な構成(図5)を備える。すなわち、複数のビット(配線)からなるBUSに、CPU(処理装置)、ROM(不揮発性記憶部)、メモリRWM(読み出し及び書き込み可能なメモリ)及びI/O(入出力装置)、タイマ回路TMなどが接続されている。
【0116】
サブ基板20のCPUは、予め定められたプログラムに従い、複数の処理を所定の順番で繰り返し実行するメイン処理と、予め定められた間隔で行われる割込処理とを実行する。
【0117】
図11は、発明の実施の形態に係る受信装置のブロック図である。図11はサブ基板20において実現される機能のブロック図であり、発明の実施の形態に関連する部分のみを示している。
【0118】
40は、メイン基板10から受けたコマンドを受信するコマンド受信部である。コマンド受信部40は、例えば通信処理用のICであり、自動的にコマンドを受信する。
【0119】
41は、コマンド受信部40で受けたコマンドを一時的に保存する受信バッファである。受信バッファ41は先入れ先出しバッファ(FIFO)であり、所定のデータ(コマンド)を記憶し、記憶したデータをその順番で出力するものである。
【0120】
受信バッファ41は、FIFOなどのメモリICで構成することもできる。あるいは、複数のメモリで構成することもできる。例えば、CPUの内部レジスタ又はメモリを受信バッファ(その1)とし、プログラムでアクセスされるメモリの一部を受信バッファ(その2)及び受信バッファ(その3)とし、これら受信バッファ(その1)〜(その3)全体が受信バッファ41を構成するようにしてもよい。例えば、メイン基板10からのコマンドは最初に受信バッファ(その1)に格納され、次に受信バッファ(その2)に格納され、その後受信バッファ(その3)に格納される。
【0121】
42は、受信バッファ41からコマンドを読み出して解析し、サブ基板20のCPUへ送るコマンド解析部である。コマンド解析部42は、例えば、所定の割込タイミング(例えば図13のコマンド受信チェックタイミング)で処理を開始する。
【0122】
<コマンド受信処理(その1)>
図12は、コマンド受信部40の処理フローチャートである。この処理は、例えば、図15のt10〜t21のチェックタイミングにおいて実行される。
【0123】
ST191:受信状況を判定する。
例えば、コマンド受信部40に入力されている信号が変化しているときは受信有とし、変化がないときは受信無とする。
【0124】
ST192:受信有のときは、その旨を意味する「受信有」の信号を発生し、例えばコマンド解析部42へ出力する。
【0125】
ST193:コマンド受信部40は、変化している信号からデータを抽出し、受信バッファ41に格納する。上記コマンドはバイトを単位としているので、バイトごとにデータを格納する。データの抽出処理は公知であるので、その説明は省略する。
【0126】
ST194:受信無のときは、その旨を意味する「受信無」の信号を発生し、例えばコマンド解析部42へ出力する。
【0127】
<コマンド受信処理(その2)>
図13はコマンドを確定する処理、つまり、コマンドを構成する全てのデータを受信したかどうかと判定し、受信したときにこれらのデータをひとつのまとまりとして解析するためにコマンド解析部42に取り込む処理である。コマンドを構成する全てのデータを受信したと判定することを「コマンド確定」と記すことにする。図13の処理については、図15等を参照して後に具体的に説明を加える。
【0128】
図13の処理全体が、図14のST20に相当する(ST201の「受信無」、ST203の「係数値≦閾値」は、ST20の「NO」に対応する)。
【0129】
図13の処理は、例えば、図15のt10〜t21のチェックタイミングにおいて実行される。
【0130】
ST201:コマンド解析部42は、受信状況を判定する。
図12のST192又はST194により「受信有」又は「受信無」の信号が送られてくるので、これに基づき受信状況を「受信有」又は「受信無」のいずれかに判定する。
【0131】
ST202:コマンド解析部42は、「受信無」の回数を計数する。ここでの計数は、連続する「受信無」を計数するものとする。例えば、図15のt12とt13で計数値は2回となる。「受信有」になったら、計数値をリセットする。例えば、図15のt15で計数値は4となるが、t16で0に戻る。この計数値は、後述のGAPの時間に相当する(図17及びその説明参照)。
【0132】
ST202は、受信無の信号が連続する期間(以下「継続時間」又は「受信無継続回数」)を予め定められた時間と比較することに相当する。例えば、連続する「受信無」の計数値に、コマンド受信チェックタイミングの間隔を乗じた期間を、継続時間とすることができる。以下の説明では、説明の便宜上、受信無の信号が連続する期間を、単に「継続時間」と記載する。
【0133】
ST203:コマンド解析部42は、計数値を閾値と比較する。
係数値が閾値以上又は閾値を超えたとき、ST204を実行する。そうでないときは処理を終了する。
【0134】
閾値は後述のGAP2に相当する。これについては後述する。
【0135】
ST204:コマンド解析部42は、受信バッファ41からコマンドを読み出す。
受信バッファ41には受信したデータであって、まだ読み出されていないデータが格納されているので、それらを読み出す。これらのデータは、前回コマンド確定した際において、S203で計数値>閾値と判定され、ST204で読み出された後に格納されたデータである。それらデータ全体がひとつのコマンドを構成する。このコマンドが適正なものであるかどうかは、図14の処理で判定する。図15の例ではt13とt19でコマンドを読み出す。
【0136】
なお、受信無が連続するような場合もST203で係数値>閾値となるが、この場合は受信バッファ41の中にデータが無いのでST204はスキップされる。図15の例ではt14、t15においてST204はスキップされる。
【0137】
<コマンド受信処理(その3)>
図14は、サブ基板20のコマンド受信処理のフローチャートである。図15及び図16は、コマンド受信のタイミングを説明するためのタイミングチャートである。以下、これらの図に基づき、発明の実施の形態に係るコマンド送信処理を説明する。
【0138】
図15及び図16の符号を説明する。
【0139】
tm1、tm5はメイン基板10におけるコマンド送信開始タイミングである。
【0140】
tm2、tm6はメイン基板10におけるコマンド送信終了タイミングである。
【0141】
ts1、ts5はサブ基板20におけるコマンド受信開始タイミングである。
【0142】
ts2、ts6はサブ基板20におけるコマンド受信終了タイミングである。
【0143】
tm1とts1の差は、コマンドの伝播時間に相当する。サブ基板20のコマンド受信の箱の下の受信状況は、コマンド受信部40の受信状況を示す。
【0144】
t10〜t21は、コマンド解析部42によるコマンド受信のチェックタイミングである。この間隔はメイン基板10のコマンド送信タイミング(3ms)に応じて定められ、例えば500μsである。この下のコマンド受信チェック結果「受信有」「受信無」は、t10〜t21においてコマンドを受信していたか否かの判定結果である。
【0145】
GAPはデータを受信しない期間(隙間)である。
【0146】
コマンド受信部40は、メイン基板10からコマンドを受けると、受けた順番に受信バッファ41に書き込んでいく。例えば、ts1からts2において合計5バイトのデータが受信バッファ41に書き込まれる。
【0147】
コマンド解析部42はt10においてコマンド受信チェックを行う(図12)。
【0148】
あるいは、前回の受信チェックのとき(図示せず)と比較してt10において受信バッファ41に新たなデータが書き込まれているので、コマンド解析部42は「受信有」と判定するようにもできる。この判定は、例えば、受信バッファ41のインデックスの位置に基づき行う。
【0149】
コマンド解析部42はt11においてコマンド受信チェックを行うが、t10〜ts2の間に新たなデータを受信し、これが受信バッファ41に書き込まれているので、コマンド解析部42は「受信有」と判定する。
【0150】
コマンド解析部42はt12においてコマンド受信チェックを行うが、受信バッファ41のデータはt11のときと変わらないので、コマンド解析部42は「受信無」と判定する。
【0151】
t13以降も同様である。
【0152】
コマンド確定には、コマンドの受信開始ts1から受信無確定のt13までの期間を要する(他も同様)。
【0153】
図13からわかるように、コマンド確定に要する時間(ts1〜t13)は、コマンドの実際の受信時間(ts1〜ts2)よりも長い。例えば、コマンド受信のチェックタイミングの間隔(500μs)の2倍程度長くなる。
【0154】
他方、コマンド受信チェックによる「受信無」の期間は、コマンドの実際の受信無の時間(ts2〜ts5、隙間GAP)よりも短い。なお、コマンドを正しく受信するためには、複数のコマンド間に「受信無」の期間が少なくともひとつ(以下の例では少なくとも2つ)必要である。この条件を満たすようにダミーコマンドの長さは選択される(前記(条件1)参照)。
【0155】
図14を参照して処理手順を説明する。この処理は、t10〜t21のタイミングで起動される。
【0156】
ST20:コマンド解析部42は、コマンドを受信したかどうか判定する。
この処理は、図13のST201〜ST204からなる。
コマンドを受信した(YES)となるのは、ST203で係数値>閾値となったときである(図15のt13、t19)。これ以外の場合、例えば「受信有」のときはコマンド受信中でありコマンド受信未了なので、コマンドを受信していない(NO)となる。「受信無」が連続している場合も同様である(NO)。このケースはそもそもデータを受信していない。
【0157】
「YES」であればST21に進む。「NO」であれば図12の処理を終了する。
【0158】
ST21:コマンド解析部42は、受信バッファ41から受信したコマンドを読み出し、その構成を調べ、その長さをチェックする。
コマンド(正規コマンド)はチェックサムを含む5バイトである。ダミーコマンドはチェックサムを含む4バイトである。
【0159】
また、後述のように、不正コマンドの場合は、複数のコマンドが結合されて5バイトよりも長くなる(図16及びその説明参照)。
【0160】
ST22:コマンド解析部42は、コマンド長さが適正かどうか判定する。
上記例では、適正な長さ(基準長)は5バイトである。5バイトのとき「YES」、これ以外の長さのコマンドは「NO」となる。4バイト以下、6バイト以上はいずれも「NO」である。
【0161】
ST23:ST22で「YES」のとき、コマンド解析部42は当該コマンドを解析して、解析結果をサブ基板20のCPUに渡す。解析処理は公知なので説明は省略する。
【0162】
ST24:ST22で「NO」のとき、コマンド解析部42は当該コマンドを破棄する。当該コマンドはCPUに渡されず、サブ基板20の処理に影響を与えない。「NO」となるのは例えばダミーコマンドであり、その長さは4バイトであり、基準長≠4バイトである。あるいは他のコマンドと結合された不正なコマンドであり、その長さは10バイト以上である。
【0163】
なお、図12においては、ST22で「NO」のときの処理の意義を明確にするために「コマンド破棄」処理を示しているが、「コマンド破棄」とはこのコマンドを次の処理に渡すことをせず、保持することもしないという意味である。実際には、何もせず処理12を終了するようにしてよい。すなわち、ST24の処理は不要である。
【0164】
図15を参照して、図14の処理の具体例を説明する。図15は、不正コマンドが存在しない場合である。
【0165】
t10とt11では図13のST201で「受信有」となるが、t12〜t15では「受信無」となる。閾値=1とすれば、t12では計数値=1であるのでST203で「計数値≦閾値」となり、ST204は実行されない。t13では計数値=2であるのでST203で「計数値>閾値」となり、ST204が実行される。これによりコマンド確定となる。ST204で読み出されたコマンド(ts1〜ts2で受信したもの)は、コマンド解析部42で解析される。すなわち、図14のST21以降が実行される。コマンド(ts1〜ts2で受信したもの)は正規コマンドであるので、ST22でYES、S23が実行される。
【0166】
図16を参照して、図14の処理の具体例を説明する。図16は、不正コマンドが存在する場合である。
【0167】
t10とt11では図13のST201で「受信有」となるが、t12では「受信無」となる。閾値=1とすれば、t12では計数値=1であるのでST203で「計数値≦閾値」となり、ST204は実行されない。
【0168】
tx1〜tx2で受信した不正コマンドがあるため、t13で再び「受信有」となる。ここで計数値がリセットされる。
【0169】
t15では計数値=1であるのでST203で「計数値≦閾値」となり、ST204は実行されない。
【0170】
t19で初めて計数値=2となり、ST203で「計数値>閾値」となり、ST204が実行される。これによりコマンド確定となる。ST204で読み出されたコマンドは、コマンド解析部42で解析される。
【0171】
t19で読み出されるものは、ts〜ts2及びts5〜ts6のコマンドとtx1〜tx2の不正コマンドが結合されたものである。受信バッファ41はこれらのデータが残っているので、それら全てがひとまとまりのデータでありひとつのコマンドとして扱われる。したがって、t19で読み出されたコマンドは非常に長いもの(15バイト)となり、図14のST22で「NO」となり、破棄される。
【0172】
受信バッファ41が、複数のメモリ(前述の受信バッファ(その1)〜(その3))で構成される場合について補足する。
【0173】
メイン基板10から送られてきたコマンドは、まずサブ基板20のCPU内部の受信バッファ(その1)に、CPUの受信処理に伴い自動的に格納される。
【0174】
ソフトウエア処理により、受信バッファ(その1)を備えるCPUから、メモリ内の受信バッファ(その2)に受信したコマンドを移動させる。具体的には、コマンド受信タイミングで、受信バッファ(その1)にコマンドが格納されるとき(コマンド受信チェック結果が受信有)のとき、受信バッファ(その1)から受信バッファ(その2)にコマンドが移動される。
【0175】
受信バッファ(その1)に格納されているコマンドがなくなり、受信コマンドチェック結果が受信無を2回繰り返したとき、1つのコマンドが確定する。このときに受信バッファ(その2)に格納されたコマンド長を判定する(ST22)。正規のコマンド長であれば、受信バッファ(その3)に移し、解析する(ST23)。
【0176】
この例では、受信バッファ41が複数のメモリで構成され、それらの間を移動する間にコマンド長を判定しているが、このように構成してもよい。この場合、受信バッファ41がコマンド解析部42の一部を含むと考えてもよい。コマンド長の判定は、コマンド受信部40内部に一時的なバッファを備えているとしてその出力で行うこともできるし、上述のように受信バッファ41の内部で行うこともできる。また、コマンド解析部42でコマンドを受ける際に行うようにしてもよい。
【0177】
この発明の実施の形態によれば、受信バッファ41からの読み出しを、ST203の係数値>閾値のときに行うので、メイン基板からサブ基板へのデータ伝送路に不正にアクセスし、上記報知を不正に行わせる、いわゆるゴト行為を防止することができる。
【0178】
すなわち、この発明の実施の形態によれば、サブ基板において、受信無の信号の継続時間を閾値(GAP2)と比較し、継続時間が閾値よりも長くなったときコマンドを読み出すので、通常よりも隙間の狭い複数のコマンド(ダミーコマンド、不正なコマンドを含む)が一緒に受信バッファ41に記憶され、それらがひとつのコマンドとして読み出される。つまり、不正なコマンドはその前及び/又は後のコマンドと結合される。そして、そのコマンドの長さを調べ、コマンドの長さが予め定められた基準長と異なるときはコマンドを破棄するようにしたので、通常よりも隙間の狭い複数のコマンドは、破棄される(不正なコマンドが挿入されると隙間が通常よりも狭くなる)。これにより、不正なコマンドがサブ基板で正規コマンドのように扱われることを防止できる。
【0179】
例えば、所定の当選役に当選したとき、正解となる押し順で停止操作を行うことにより、特定の図柄組合せが表示され、この特定の図柄組合せが表示されたことに基づいて、リプレイが高確率で当選する状態とするとともに、当該状態において当選役を報知する打順報知とするためのコマンドに関して、その不正を防止することができる。不正行為者が、正解打順を報知させるために、特定の当選役に当選したという情報(コマンド)を不正基板からサブ基板へ送ることができず、不正行為者は正解打順で停止操作を行えず、配当の高い小役の入賞による利益を得ることができない。
【0180】
この発明の実施の形態は、「不正行為者の付け入る隙」を与えない。図15及び図16のように隙間GAPの一部をコマンド確定に使用しているので、コマンドとコマンドの間の隙間が狭くなる。このため、この狭くなった隙間で不正コマンドを送ることができない。この隙間GAPで不正コマンドを送ると図16に示すようにコマンドを分離できず、複数のコマンドが連結されて解釈される。コマンド長が正規の長さ(5バイト)を超えてしまうから異常と判定され、当該コマンドは破棄され、実行されることがない。不正行為者は不正な利益を得ることができない。
【0181】
なお、発明の実施の形態では、サブ基板20のコマンドの受信間隔を一定にするためにダミーコマンドを送信しているが、このダミーコマンドは正規コマンドよりも短いので、以下に述べるように特許文献1の問題は生じない。コマンド長で正規コマンドとダミーコマンドを区別しているので、正規コマンドの種類を減らすことがなく、また、コマンド解析の処理負荷を増やすことがない。
【0182】
特許文献1によれば、不正なコマンドデータの送信を防止できるが、前述の(1)(2)という問題があった。
【0183】
(1)は「コマンドの種類が減少する」というものであるが、発明の実施の形態によればコマンド長で正規コマンドとダミーコマンドを区別しているので、特定のコード(例えば10H)をダミーコマンドに割り当てる必要がなく、したがって正規コマンドに使用できるコードが減るといったことがない。
【0184】
(2)は「ダミーコマンドも正規コマンドと同様に解析しなければならない(そうしないと両者を区別できない)」というものであるが、発明の実施の形態によればコマンド長で正規コマンドとダミーコマンドを区別しているので、コマンド解析の前にその構造の違いで両者を区別できる。したがって、コマンド解析のためにCPUの処理負荷が増えるという問題が生じない。
【0185】
<「閾値」の検討>
次に、図17を参照して、図13の閾値の定め方について検討する。閾値を適切に定めることにより、不正コマンドデータの送信防止という効果を奏することができる。
【0186】
コマンド受信間隔が一定の範囲内に収まっているとして、その最小値を最小受信間隔、その最大値を最大受信間隔とする。図17(a)は最小受信間隔のときのタイミングチャートを示し、図17(b)は最大受信間隔のときのタイミングチャートを示す。GAPは、不正コマンド以外のコマンド間の隙間である。GAP2は閾値に相当する。GAP2は、実際はコマンド受信チェックタイミングの間隔を単位とする離散値であるが、ここでは説明を簡単にするために連続値とする。
【0187】
図17(b)は不正コマンドが結合されるか、されないかの境界事例を示している。つまり、図17(b)は不正コマンドを連結する最小のGAP2を示している。GAP2がこれよりも少しでも短くなると、不正コマンドが正規コマンドとして扱われてしまう。
【0188】
図13において閾値は自然数であるが、これはコマンド受信を一定間隔で行っていて当該間隔を単位として計時していることに相当する。したがって、図13のST203での判断の基礎としているのは時間である。閾値(時間)は、次の条件を満たす必要がある。
【0189】
(条件3)正規コマンドを誤って結合して破棄されることがないこと
【0190】
(条件4)不正コマンドを誤って正規コマンドと認識することがないこと。言い換えれば、隙間GAPに挿入された不正コマンドは常に隣接する正規コマンド(又はダミーコマンド)と結合されること。
【0191】
<(条件3)の検討>
図17(a)はコマンドが結合されない状態を示す。図17(a)によれば、次の関係が成立する。なお、この項において、「コマンド」は正規コマンドとダミーコマンドの両方を指すものとする。
(コマンド確定に要する時間)=(コマンド受信時間)+GAP2
(コマンド確定に要する時間)<(最小受信間隔)
【0192】
ダミーコマンドを含む場合、コマンド長の違いに起因して(コマンド受信時間)は正規コマンドとダミーコマンドで異なるが、ここでは説明を簡単にするために両者は同じであるとする(より正確に検討するときは、それぞれの受信確率に基づきその受信時間の期待値を求めるとよい)。
【0193】
上記式から、
(コマンド受信時間)+GAP2<(最小受信間隔)
GAP2<(最小受信間隔)−(コマンド受信時間)
【0194】
GAP2(閾値)を上記のように定めれば、コマンド確定に要する時間が経過した後に次のコマンドを受信するので、正規コマンドを誤って結合して破棄されることがなくなる。
【0195】
<(条件4)の検討>
図17(b)によれば、次の関係が成立する。
(コマンド受信時間)+GAP2+(不正コマンド受信時間)+GAP2=(コマンドの最大受信間隔)
【0196】
不正コマンドは、自身を正規コマンドとして実行させることを目的とし、正規コマンドと同じ構造をしているから、(コマンド受信時間)=(不正コマンド受信時間)である。したがって、
GAP2=(コマンドの最大受信間隔)/2−(コマンド受信時間)
が得られる。
【0197】
図17(b)のGAP2は、(条件4)を満たす最小値を示すから、GAP2が満たすべき条件は次のようになる(境界値は含めないようにした)。
GAP2>(コマンドの最大受信間隔)/2−(コマンド受信時間)
【0198】
GAP2(閾値)を上記のように定めれば、コマンド確定に要する時間が複数のコマンド(不正コマンドを含む)に跨がり、不正コマンドは常にその前又は後のコマンドと結合されるので、不正コマンドを誤って正規コマンドと認識することがなくなる。
【0199】
なお、「受信無継続回数」で判断する場合は、GAP2をコマンド受信チェックタイミングの間隔で除したときの商が閾値(回数閾値)となる。前述の例では、回数閾値=2であった。
【0200】
なお、コマンド受信間隔が一定でなくても、その変動幅が(条件3)と(条件4)を同時に満たすGAP2の存在し得る範囲であれば、本発明の実施の形態に係る処理を適用することができる。よって、ダミーコマンドを送信することは、必須ではない。
【0201】
(コマンドの最大受信間隔)が大きくなり、(コマンドの最小受信間隔)が小さくなると、つまり、コマンドの受信間隔の変動幅が大きくなると、(条件3)と(条件4)を同時に満たすことができなくなる。この場合、何らかの手法で(コマンドの最大受信間隔)と(コマンドの最小受信間隔)の差を小さくする必要がある(例えばダミーコマンド)。(コマンドの最大受信間隔)と(コマンドの最小受信間隔)を完全に一致させることは必須ではないが、そのようにしてもよい。
【0202】
<コマンド受信間隔が一定の場合>
コマンド受信間隔がほぼ一定、つまり(コマンドの最小受信間隔)≒(コマンドの最大受信間隔)であるとき、これらを(コマンドの受信間隔)とすると、
(コマンドの受信間隔)/2−(コマンド受信時間)<GAP2<(コマンドの受信間隔)−(コマンド受信時間)
となる。
【0203】
この式からわかるように、コマンド受信間隔が一定であれば、(条件3)と(条件4)を同時に満たすGAP2が常に存在する(ただし、(コマンドの受信間隔)≠0)。
【0204】
図15の例に基づきGAP2(閾値)を計算してみる。以下の例では、「受信無継続回数」で判断するものとし、以下の数値は、コマンド受信チェックタイミングの間隔を単位とする計数値とする。図15の例では、(コマンドの受信間隔)=6、(コマンド受信時間)=2である(コマンド受信チェックタイミングの間隔を1とした。例えば、1単位=t11−t10)。
【0205】
(コマンドの受信間隔)/2−(コマンド受信時間)=6÷2−2=1
(コマンドの受信間隔)−(コマンド受信時間)=6−2=4
1<GAP2<4となり、したがって、GAP2=2又は3となる。
【0206】
図15の例は、GAP2=2の例を示すが、図15によれば、GAP2=3でも(条件3)を満たすことが理解できる。また、図16によれば、GAP2=3でも(条件4)を満たすことが理解できる。
【0207】
<電源断からの復帰の際の処理>
コマンド送信は、図10に示すように一定間隔Tで実行されている。この間隔Tは、サブ基板20の受信の際にコマンドとコマンドの間に隙間が生じるように予め定められている。この隙間によりコマンドの受信が完了したこと、具体的には図14のST20でYESと判定できるようになる。この隙間が無いと、サブ基板20において、複数のコマンドがひとつのコマンドとして誤認され、電文過多(バイト数が予め定められた数よりも多い)となり、エラーとなる。
【0208】
通常の場合はコマンド送信が一定間隔Tで行われるが、特定の場合、例えば、遊技機の電源をオフにしてから再度電源をオンにするという、電源断からの復帰の際にはこの間隔が崩れることがある。
【0209】
このことについて図18を用いて説明する。電源断からの復帰すると所定の復帰処理が実行され、タイマによる割込が発生するが、電源断からの復帰処理を行っている間は割込が禁止される(tAからtB)。この間のts1とts2は、割込のタイミングであっても割込処理は実行されない。割込禁止が解除された時点tBで割込が再開され、割込処理がt2’で実行される。ts2’はts2と同じでなく、これらの間に時間差αが存在する。図18の例ではts2’はts2よりも遅く、この結果次の割込処理による割込開始タイミングts3との間隔が、通常の間隔よりもα分短くなっている(短い間隔=T−α)。
【0210】
図18に示すように、電源断からの復帰の際に割込禁止期間が設定されるため、その解除の直後のコマンド送信間隔が崩れている。割込再開のタイミングは不定であり、ts1などの割込処理の開始タイミングとは同期していない。このため、図18のように割込処理の間隔が通常よりも短くなることがある。これにより隙間が無くなり、サブ基板20において電文過多エラーが発生するおそれがある。
【0211】
上記不具合を回避するためには、図19に示すように、電断復帰後の最初の割込開始タイミングts2’ではコマンド送信処理を実行せず、二回目以降の割込開始タイミングts3でコマンド送信処理を実行する。コマンド送信間隔T(3ms)が守られるため、サブ基板20において電文過多エラーが発生することがなくなる。
【0212】
なお、図19の「電断復帰後の最初の割込開始タイミングではコマンド送信処理を実行しない」処理は、ダミーコマンドを送信しない場合にも適用することができる。この場合も同様に電文過多エラーの発生を防止できる。
【0213】
<設定変更時のダミーコマンド生成の一時中断>
遊技機の電源がオンになるとメイン処理が起動する。初期設定の後に最初に行われるのが設定変更処理である。前述のように、抽選テーブル選択処理では、図示しない記憶手段(ROM)に格納されている複数の抽選テーブルのうち、いずれの抽選テーブルを用いて内部抽選を行うかを決定するが、設定変更処理はどの抽選テーブルを用いるかを設定するためのものである。遊技機の電源のオンは、ホール店員が遊技機の前扉を開けて、内部の電源スイッチをオンにすることで行うが、その際に設定変更スイッチを操作することで設定変更処理が実行される。設定変更スイッチが操作されなければ設定変更処理はスキップされる。設定変更処理は公知であるので、その詳しい説明は省略する。
【0214】
抽選テーブルを選択するための設定変更時においては、コマンドバッファ30の内容BF1〜BF128が全て0で埋められる。このため、設定変更時においてその先頭の3バイトBF1〜BF3に基づき生成されるダミーコマンドは、全てのビットが0である特殊なものとなり、好ましくない。
【0215】
そこで、ダミーコマンドの生成及び送信は、設定変更が終了した後であって、正規コマンドが生成されてコマンドバッファ30の少なくともBF1〜BF3が0以外になってから行うようにする。具体的には、正規コマンドが所定数(例えば1つ以上)生成されたことを確認したときに初めてダミーコマンドを生成する。正規コマンドが生成されたかどうかはコマンドバッファ30のインデックスに基づき判定することができる。あるいは、設定変更終了時点にタイマで計時を開始し、所定時間経過したときにダミーコマンドを生成してもよい。
【0216】
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【符号の説明】
【0217】
10 メイン基板
20 サブ基板
30 コマンドバッファ
31 コマンド生成部
32 コマンド書込部
34 コマンド送信部
40 コマンド受信部
41 受信バッファ
42 コマンド解析部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19