JP5368256B2 - 遊技機 - Google Patents

遊技機 Download PDF

Info

Publication number
JP5368256B2
JP5368256B2 JP2009248280A JP2009248280A JP5368256B2 JP 5368256 B2 JP5368256 B2 JP 5368256B2 JP 2009248280 A JP2009248280 A JP 2009248280A JP 2009248280 A JP2009248280 A JP 2009248280A JP 5368256 B2 JP5368256 B2 JP 5368256B2
Authority
JP
Japan
Prior art keywords
command
error
message
buffer
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009248280A
Other languages
English (en)
Other versions
JP2011092351A (ja
Inventor
貴博 上田
貴司 柴垣
英史 大森
務 冨士代
健太 古賀
辰則 春好
Original Assignee
株式会社オリンピア
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社オリンピア filed Critical 株式会社オリンピア
Priority to JP2009248280A priority Critical patent/JP5368256B2/ja
Publication of JP2011092351A publication Critical patent/JP2011092351A/ja
Application granted granted Critical
Publication of JP5368256B2 publication Critical patent/JP5368256B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、パチンコ機やスロットマシンなどの遊技機に関し、特に、制御部(メイン基板)から副制御部(サブ基板)へのコマンドの通信手段に関するものである。
遊技機設置営業店などにおいて設置されている弾球遊技機(いわゆるパチンコ機)は、遊技球(遊技媒体とも呼ぶ)を用いて遊技を行うものである。借り受けた遊技球を弾球遊技機の遊技盤に設けられている盤面へ打ち出し、当該遊技球が予め定められた入賞口に入るごとに所定数の遊技球を払出すようになっている。払い出される遊技球は賞球と呼ばれる。
弾球遊技機の盤面に設けられている入賞口には次のようなものがある。
(1)普通入賞装置
(2)スタートチャッカー(始動入賞装置)
(3)アタッカー(大入賞装置)
(4)スルーチャッカー(入賞チャッカー)
スタートチャッカー(始動入賞装置)は特定入賞装置とも呼ばれる。遊球球がスタートチャッカー(始動入賞装置)に受け入れられて入賞状態になったとき、賞球を払い出すとともに電子的な抽選を行い、当選の場合に通常状態から遊技者にとって有利な遊技状態となるよう、アタッカー(大入賞装置)を開放状態にするものである。
アタッカー(大入賞装置)は特別入賞装置とも呼ばれる。
スルーチャッカー(入賞チャッカー)は直接賞球を払い出すものではないが、本明細書において入賞口に含める。遊技球がスルーチャッカー(入賞チャッカー)を通過したことが検知されたとき、電子的な抽選を行い、当選したときは遊技者にとって有利な遊技状態となるよう、スタートチャッカー(始動入賞装置)を所定時間開放し、遊技球がスタートチャッカー(始動入賞装置)に入りやすくする。スルーチャッカー(入賞チャッカー)に受け入れられた遊技球はそのまま盤面を移動し、他の入賞口又は次に説明する排出口(アウト口)に受け入れられる。
弾球遊技機の盤面には、前記入賞口以外にも排出口(アウト口)が設けられている。排出口(アウト口)は、盤面に遊技領域を区画するために螺旋状に配置された誘導レールの下部(重力によって遊技球が集められる個所)に設けられた開口であり、前記入賞口(正確には普通入賞装置、スタートチャッカー(始動入賞装置)、アタッカー(大入賞装置))のいずれにも受け入れられなかった遊技球を受け入れて、盤面の外へ排出するためのものである。
パチンコ店などの遊技場に設置して使用されるパチンコ機等の遊技機は、パチンコ球等の遊技媒体に一定の価値が与えられて、ゲームを行って獲得した遊技媒体を種々の景品に交換することができる。遊技機には、その筐体内部に、遊技媒体の供給に基づいて作動させるランプ装置や音声発生装置などの様々な各種駆動装置及びこれら駆動装置を制御させるために対応させた制御回路装置(制御部と副制御部)を備えており、遊技者が遊技を行う際にこれらを適宜作動させることによって遊技を興趣に溢れたものとしている。また、近年では、所定の識別情報(図柄)を変動表示し得る液晶画像表示装置等の図柄可変表示装置を内蔵し、所定条件を満たしたときに識別情報を変動させた後に停止表示させるように図柄可変表示装置を作動させるものが主流となっている。このような制御は、主に遊技処理を実行する制御部から、主に演出処理を実行する副制御部へ予め定められたコマンドを送信することで実現されている。
遊技機を規制する法令上、制御部(メイン基板)から副制御部(サブ基板)へのコマンドの流れは一方通行であり、逆に副制御部から制御部ヘコマンドを含む信号を送ることは許されていない。
このような一方通行の通信においては、コマンドを正しく受信できない場合でもその再送を要求できない。そこで、エラーがあった場合でもコマンドの再構成をできるだけ行い、コマンドが失われることをできるだけ避ける必要がある。仮に、多くのコマンドが失われると、サブ基板による演出が行われないことになり、遊技者の興趣を損なうことになる。
しかし、再構成されたコマンドにエラーが含まれる可能性が残り、それを正常に受信できたコマンドと同じように扱うと意図しない処理が実行されるなどの不都合があり得る。
そこで、本発明は、コマンドの受信エラーが発生した場合において、エラーの含まれる可能性のあるコマンドを識別できるようにした上で、より上位の処理(企画レイヤ)へ引き渡すことで、処理上で不都合が生じないようにすることを目的とする。
この発明は、複数の演出デバイスと、内部抽選処理を含む遊技に係る制御及び演出に係る制御を実行するとともに前記複数の演出デバイスを制御するためのコマンドを生成する制御部と、前記制御部から受けた前記コマンドに基づき演出に係る処理を実行する副制御部と、を備える遊技機において、
前記コマンドは、電文の開始を示す第1電文とこれに続く第2電文とを含むものであり、
前記制御部は、前記副制御部に実行させる処理に対応して前記第1電文を生成し、前記第1電文に対応して前記第2電文を生成し、前記第1電文及び前記第2電文をこの順番で前記副制御部へ送信するコマンド送信部を含み、
前記副制御部は、前記コマンド送信部から前記第1電文及び前記第2電文を含むコマンドを受信するとともに前記第1電文及び前記第2電文を受信する際のエラーを検知する受信機と、前記第1電文及び前記第2電文を受信した順番で格納するバッファと、所定のタイミングで前記バッファから前記第1電文及び前記第2電文を読み出し、これらに基づきコマンドを構築するコマンド構築部と、前記コマンド構築部で構築したコマンドを格納するコマンドバッファと、前記コマンドバッファから前記コマンドを読み出して前記複数の演出デバイスごとに演出用コマンドを生成するコマンド読出生成部と、前記受信機で前記エラーを検知したときにセットされるエラーフラグとを備えるコマンド受信部を含み、
前記コマンド構築部は、前記コマンドを構築する際に、前記エラーフラグを調べ、前記エラーフラグがセットされているときは、前記コマンドに含まれる複数のビットのうちで予め定められたエラービットをセットした上でコマンドを構成し、
前記コマンド読出生成部は、
前記コマンドバッファにコマンドが存在するかどうか調べ、
前記コマンドバッファにコマンドが存在しているときに、前記コマンドを読み出すとともに前記コマンドの前記エラービットがセットされているかどうか調べ、
前記エラービットがセットされていないときは前記コマンドに基づき前記複数の演出デバイスを制御し、
前記エラービットがセットされているときは予め定められた処理を実行し、
前記コマンドバッファにコマンドが存在していないときに、前記エラーフラグを調べ、
前記エラーフラグがセットされているときは予め定められた処理を実行する、ものである。
前記コマンドバッファは、一次元のメモリであって、その最後と最初がつながった環状のメモリとして扱われるリングバッファと、前記リングバッファの書き込み用のポインタであるライトポインタ及び読み出し用のポインタであるリードポインタとを含み、
前記コマンド構築部は、
前記ライトポインタが前記リードポインタに追いついたとき、前記リードポインタ及び前記ライトポインタを進め、
構築した前記コマンドを前記ライトポインタに基づき前記コマンドバッファに書き込み、
書き込んだ前記コマンドの前記エラービットをセットする、ようにしてもよい。
前記ライトポインタが前記リードポインタに追いついたとは、具体的には、前記ライトポインタの示すアドレスと前記リードポインタの示すアドレスの差がポインタの進行単位に一致していることをいう。
本発明よれば、受信エラーが発生したときはエラーフラグをセットし、バッファがオーバーフローしたときはエラービットをセットすることにより、エラーの含まれる可能性のあるコマンドを識別できるようにした上で、より上位の処理へ引き渡すことができるようになった。エラー存在を前提として処理を実行することで、エラーの影響を少なくできる。
遊技機の表面構造を示す斜視図である。 遊技機の裏面構造を示す斜視図である。 遊技者から見た盤面の様子を示す図(正面図)である。 発明の実施の形態に係る遊技機の機能ブロック図である。 発明の実施の形態に係るコマンド生成処理フローチャートと、第1電文・第2電文の説明図である。 発明の実施の形態に係るコマンド受信部の機能ブロック図である。 発明の実施の形態に係るコマンド読出系の機能ブロック図である。 発明の実施の形態に係る副制御部の処理フローチャートである。 発明の実施の形態に係るコマンド受信・コマンドバッファへの登録処理フローチャートである。 発明の実施の形態に係るコマンドバッファからの読み出し処理フローチャートである。 発明の実施の形態に係るエラービットの説明図である。 発明の実施の形態に係るコマンド受信・コマンドバッファへの登録処理及びコマンドバッファからの読み出し処理の説明図である。 発明の実施の形態に係るコマンドバッファオーバーフロー時の処理フローチャートである。 発明の実施の形態に係るコマンドバッファオーバーフロー時の処理の説明図である。
弾球遊技機の構造概略について図1及び図2を参照して説明を加える。
まず、図1を参照して本発明の実施の形態に係る遊技機の外部的構造につき説明する。
外枠50は、遊技機設置営業店に設けられた設置場所(島設備など)へと固定させるための縦長方形状からなる木製の枠部材である。
本体部材51は、外枠50の内部に備えられ、ヒンジ部51aを介して外枠に回動自在に装着された縦長方形状の遊技機基軸体となる部材である。この本体部材51は、枠状に形成されその内側に空間部を有している。
開口枠扉52は、遊技機の前面側となる前記本体部材51の前面に、ロック機能付きで且つ開閉自在となるように装着され、枠状に構成されることでその内側を開口部とした扉部材である。
なお、開口枠扉52の開口部にガラス製又は樹脂製からなる透明板部材が設けられ、開口部近傍に電飾52a、スピーカ52b、などが取り付けられている。
後述する遊技盤(図1では示していない)は、本体部材51の空間部に臨むように、本体部材51に所定の固定部材を用いて着脱自在に装着されている。遊技盤の本体部材51への装着後は、その遊技領域を前記開口部より観察することができる。
球受皿付き扉53は、遊技機前面において本体部材51の下部に、ロック機能付きで且つ開閉自在となるように装着され、遊技球を貯留する球受皿を少なくとも備えた扉部材である。なお、本実施形態における球受皿付き扉には、以下の部材が取り付けられている。
(1)複数の遊技球が貯留可能で且つ発射駆動装置48へと遊技球を案内させる通路が設けられた球受皿。
(2)該貯留され発射駆動装置48へと案内された遊技球を前記遊技盤10の盤面11に設けられた遊技領域へと打出す操作を行う回動式操作ハンドル48b。
(3)ブリペイドカード読込み処理関係及び借り受ける遊技球の貸出し処理関係の指示をするボタンを備えた球貸し関係の操作部。
(4)球受皿に貯留させた遊技球を遊技球収集容器(俗称、ドル箱)へと排出解除するための球受皿用の貯留球排出操作ボタン。
次に、図2を参照して本発明の実施の形態に係る遊技機の内部的構成を説明する。
40は、前述したように、本体部材51若しくは遊技盤11又はこれらに備え付けられる支持部材などを介して設けられ、電気的な遊技制御の処理を行い主要な処理情報を生成する制御部である。
40bは、前記本体部材51若しくは遊技盤11又はこれらに備え付けられる支持部材などを介して設けられ、前記制御部40にて生成した処理情報を得ることにより所定の出力態様処理をさせる制御を行う副制御部である。
42は、賞球の払い出し制御を行う払出制御部である。
43は、遊技球を払い出す遊技球払出装置である。
44は、図示しないランプや電飾52aを制御する電飾制御部である。
46は、スピーカ52bを制御駆動して音響を発生させる音響制御部である。
49は発射駆動装置48を制御する制御装置であって、回動式操作ハンドル48bを介して遊技球を盤面に設けられた遊技領域へと打出し制御を行うための発射制御装置である。
図3は遊技機の遊技盤の正面図である。
図3において、11は遊技盤10の盤面である。盤面11は、誘導レール12と、誘導レール12で区画された略円形の遊技領域を落下した遊技球を外部へ導く排出口(アウト口)13と、遊技領域を移動する遊技球の方向を変化せしめる釘14や風車14aなどの障害物を複数個備える矩形の盤面である。
前述した盤面11の遊技領域は、誘導レール12(遊技球を滑走させる滑走部と遊技球を規制する規制部を含む)により略円形状となるように区画形成され、打出された遊技球の移動範囲を規制する領域である。前記滑走部に規制部が続くように設けられている。前記滑走部は全体として螺旋をなして盤面11に配設されている。
前記排出口(アウト口)13は、遊技領域に投入された遊技球が集束する位置に設けられた回収開口部である。
障害物14としての遊技釘は、遊技球と接触させることにより移動方向を不規則にし、又は移動方向を規制するために、盤面11の適宜な位置に打込まれる複数の棒状部材である。
30aは、遊技領域の中央やや上側に設けられ、演出用表示ランプや液晶表示装置LCDなどの可変表示部をひとつ又は複数有する可変表示装置(センター役物)である。
30bは、スルーチャッカー(入賞チャッカー)である。
30cは、普通入賞口を有する普通入賞装置である。
30dは、始動入賞口を有するスタートチャッカー(始動入賞装置)である。
30eは、大入賞口を有するアタッカーである。
以下の説明で、30b乃至30dをまとめて入賞口30などと記すことがある。
なお、図示されていないが、上記30b、30c、30dの内部には球通過検出器20b、20c、20dが設けられている(同図の括弧内の符号はそのことを意味する)。
スタートチャッカー30dの始動入賞装置は特定入賞装置と、アタッカー30eの大入賞装置は特別入賞装置とも呼ばれる。
スタートチャッカー(始動入賞装置)30dは、入賞口の開口範囲の拡縮を行わせる可動片をその両側に備え、遊技球を入賞させることにより可変表示を行わせると共に賞球を遊技者に獲得させる入賞装置である。
アタッカー(大入賞装置)30eは、入賞口を露出させる開口状態と入賞口を閉鎖する閉口状態となる可動扉が駆動制御されるものであり、遊技球を入賞させることにより他の入賞装置と比較してより多くの賞球を獲得させる入賞装置である。
図4は本発明の実施の形態に係る遊技機の機能ブロック図である。
40は、電気的な遊技制御の処理を行い主要な処理情報を生成する制御部(「メイン基板」とも呼ばれる)である。制御部40は遊技領域を移動(流下)して入賞口30b〜30dを通過した遊技球をそれぞれ検出する球通過検出器20b〜20dの信号を入力とし、入賞口30b〜30dの遊技球通過に応じた抽選・判定を行う入賞判定部40aを含む。さらに、コマンドを生成して副制御部40bへ送信するコマンド送信部TXを含む。
41は可変表示装置(センター役物)30aの演出用表示ランプを点灯させる表示制御部である。表示制御部41は、入賞判定部40aにおける所定条件の成立(例えば、予め定められた通過口ヘの遊技球の通過)に基づく電子的な当否抽選の結果に応じて、識別点灯情報(可変表示装置(センター役物)30aの演出用表示ランプに点灯表示される)を可変表示させた後に停止表示を行う表示制御装置である。
なお、制御部40に設けられた入賞判定部40aにおける所定条件の成立(例えば、始動入賞装置30dヘの遊技球の入賞等)に基づく電子的な当否抽選の結果に応じて、液晶表示装置LCDにその識別表示情報が可変表示される(抽選結果に応じてその演出内容が変わる)。これは、制御部40から抽選結果(あるいはこれに対応する演出コマンド)を副制御部40bへ送り、当該抽選結果を受けた副制御部40bが当該抽選結果に対応する画像を生成し、これを液晶表示装置LCDで表示することで実行される。可変表示装置(センター役物)30aのLCDは、大当り状態に係わる特定図柄を変動表示すると共に背景画像や各種のキャラクタなどをアニメーション的に表示する装置である。スタートチャッカー(始動入賞装置)30dを遊技球が通過したことが検出されると、表示される図柄が所定時間だけ変動し、遊技球のスタートチャッカー(始動入賞装置)30dの通過時点において抽選された抽選用乱数値により決定される停止図柄をLCDに表示して停止するようになっている。
アタッカー30eは、前方に開放可能な開閉板を備える。LCDの変動停止後の図柄が「777」などの当り図柄のとき、「大当り」と称する特別遊技が開始され、アタッカー30eの開閉板が予め定めた回数だけ開放されるようになっている。アタッカー30eの開閉板が開放された後、所定時間が経過し、又は所定数の遊技球が入賞すると開閉板が閉じる。
42は、入賞判定部40aの信号を受けて入賞口30b〜30dの遊技球通過に応じた及び/又はこれによる抽選・判定の結果に応じた遊技球払出装置43を制御する払出制御部である。
43は、遊技利益として入賞口30b〜30dの遊技球通過に応じた及び/又はこれによる抽選・判定の結果に応じた所定数の遊技球を払出す駆動源を備えた遊技球払出装置である。
遊技球が遊技領域に設けられた入賞装置30b〜30dには、それぞれ内部に球通過検出器(例えばスイッチ)20b〜20dが設けられ、遊技球の通過を検出できるようになっている。いずれかの入賞装置30b〜30dの位置を通過すると、これを球通過検出器20b〜20dが検出し、これを受けて入賞判定部40aが所定の抽選・判定処理を行う。例えば、球通過検出器20bがスルーチャッカー(入賞チャッカー)30bを通過した遊技球を検知したとき、所定の抽選を行い、当選したときはスタートチャッカー(始動入賞装置)30dを所定時間開放する。すなわち、スタートチャッカー(始動入賞装置)30dの左右両側に互いに対向して設けられた一対の可動片を、それぞれ外側へ開放させる。併せて当選の旨を可変表示装置(センター役物)30aに表示する。そして、遊技球がスタートチャッカー(始動入賞装置)30dを通過したことを検知したとき、所定の抽選を行い、当選したときはアタッカー30eの大入賞装置を開放する。
40bは、制御部40にて生成した処理情報を得ることにより、光の点滅・音響の発生などの演出を含む所定の出力態様処理をさせる制御を行う副制御部(「サブ基板」とも呼ばれる)である。副制御部40bは、CPU、ROM、RAM及び液晶表示装置LCDに表示する画像を生成するVDP(ビデオディスプレイプロセッサ)を含む。副制御部40bからの出力信号は、ランプ制御部44、音響制御部46及び可動体制御部47などの周辺基板へ送られる。また、副制御部40bは、遊技者が操作する演出ボタンESWから信号を受け付ける(図1において、演出ボタンESWの表示は省略している)。
副制御部40bは、制御部40からのコマンドを受信するコマンド受信部RXを備える。コマンド受信部RXは、例えば、シリアル通信用IC、バッファ(FIFOを含む)及びこれらハードウエアを動作させるためのプログラムからなる。当該プログラムに従って副制御部40bのCPUなどが動作し、シリアル通信用ICを制御し、バッファからデータを読み出すことで、コマンド受信部RXは実現される。
44は、遊技盤10あるいは遊技機筐体に設けられたランプ・電飾52aなどを点灯制御するための電飾制御部である。
46は、遊技盤10あるいは遊技機筐体に設けられたスピーカ52bを通じて効果音・音声を発生させる音響制御部である。
47は、遊技盤10に設けられた可動体52cを制御する可動体制御部である。
可動体52cとは、遊技盤10上に打ち出された遊技球の落下動作に変化を与える障害物であって、副制御部40bの処理によって状態が変化するものである(図3において可動体52cの表示は省略している)。可動体52cは、例えば、通常状態とこれと異なる状態の2つを相互に行き来するものである。可動体とは、例えば、平板状、円柱状、円盤状、凹凸を有する歯車状、等のものである。なお、図示しないが可動体52cを駆動するための動力部を備える。可動体制御部47は、実際には、当該動力部を駆動する。動力部は、例えば、モータ、ソレノイドなどの電力又は磁力を用いた駆動装置又は駆動源を備えた制御装置などである。
液晶表示装置LCD及びランプ・電飾52a、スピーカ52b、可動体52cは、遊技者の視覚や聴覚に訴える演出を行うための演出デバイスである。また、ランプ制御部44、音響制御部46、可動体制御部47は、前記デバイスを駆動制御するデバイスであり、その内部に演出処理用のICを内蔵している。副制御部40bに内蔵されるVDPも駆動制御用のデバイスである。以下の説明において、液晶表示装置LCDなどの上記演出デバイスを駆動制御する、ランプ制御部44、音響制御部46、可動体制御部47及びVDPを演出デバイス制御部と呼ぶことにする(なお、演出デバイスと演出制御デバイスと併せて指すときに「演出デバイス」という用語を用いることがある)。なお、ランプ制御部44、音響制御部46、可動体制御部47を、VDPのように副制御部40bに内蔵してもよい。
演出ボタンESWは、遊技者によって押下操作されるものであり、押下することで液晶表示装置LCDに表示される演出画像の態様を変化させ、遊技者に対して遊技への参加意識を高めるとともに、興趣を高めるようにしたものである。例えば、演出ボタンESWの操作に連動して液晶表示装置LCDに表示される演出画像を選択することができる。
副制御部40bは、前述のようにCPU、ROM、RAM及びVDPを含む。複数のビット(配線)からなる図示しないBUSに、CPU(処理部)、ROM(不揮発性記憶部、メモリ)、RAM(読み出し及び書き込み可能な記憶部、メモリ)、VDP及び図示しないI/O(入出力装置)が接続されている。副制御部40bで実行される遊技に係る処理は、ROMに予め記憶されたプログラムに従ってCPUが動作することで実行される。CPUは、処理を行う際に各種データをRAMに記憶させ、必要に応じて読み出し、処理を行い、必要に応じて再度記憶する、といった処理を行う。RAMはバッテリバックアップを受けていることがあり、この場合は電源断の間でもその記憶内容は保持されている。
副制御部40bは、主制御部40から演出コマンドを受信し、これに基づき液晶表示装置LCD、ランプ・電飾52a、スピーカ52b、可動体52c、演出ボタンESWなどの制御を行うものである。
コマンド送信部TX及びコマンド受信部RXについて説明を加える。
図5(a)は、コマンド送信部TXが実行する処理のフローチャート、同図(b)はコマンド送信部TXが生成するコマンドの説明図である。
コマンド送信部TXが生成するコマンドは複数の電文からなる。最初の電文は開始電文、最後の電文は終端電文、これらに挟まれた電文は途中電文と呼ばれる。図5(b)は2つの電文、つまり第1電文と第2電文からなるコマンドの例を示す。これは最も簡単な構成であり、図6以降の説明ではもっぱら図5(b)の2つの電文、つまり第1電文と第2電文からなるコマンドを例に取り説明を加える。なお、途中電文を含み3つ以上の電文からなるコマンドについても本発明の実施の形態を適用することができ、その手順は変わらない。
同図(b)の例では、各電文は8ビット(1バイト)のデータであり、その先頭ビット(MSB)が1であるときは第1電文を意味し、0であるときは第1電文以外の第2電文などを意味する。これらは例えば次のような意義を有する。第1電文はコマンドの最初の電文であることを意味すると共に、副制御部40bに実行させる処理を識別するための情報などを意味する。第2電文は、第1電文に縦続するコマンドであることを意味すると共に、副制御部40bが実行すべき処理の内容を具体的に指定する。例えば、第1電文で液晶表示装置に関するコマンドであること(液晶表示装置に対して所定の処理を実行させるコマンドであること)を意味するとき、第2電文は液晶表示装置に表示すべき具体的な画像(演出)の種類を指定するものである。したがって、第1電文と第2電文が、その順番で正しく揃って初めてコマンドとして意味をもつ。仮に一方が失われると残りの電文は意味を持たず副制御部40bは何ら動作を行わないか、仮に動作しても意図したような動作にはならない。第1電文と第2電文の順序が入れ替わった場合も同様である。また、複数のコマンド、コマンド1とコマンド2を受けたとして、その中間部分が欠落して、コマンド1の第1電文とコマンド2の第2電文とが結合した場合も、予め意図した動作は期待できない。
先頭ビットにより第1電文かそれとも第2電文かは判別できる。しかし、コマンド受信部RXの図示しない通信用ICで受信する際に先頭ビットは使用されるが、その後にFIFOバッファに電文を格納する際に先頭ビットは削除されるので、FIFOバッファに格納されたデータそのものからは第1電文と第2電文を区別することができない。ただし、FIFOバッファには先頭ビットに基づき正しい順番で格納されるので、その順序が狂うことはない。言い換えれば、FIFOに格納されている電文の順序が正しいことは、保証されている。これに対して、FIFOから読み出してコマンドを構築する際には電文の順序が狂うことがある。
図5(a)を参照して、コマンド送信部TXのコマンド生成処理について説明を加える。同図のフローチャートにより1つのコマンドが生成される。
制御部40のCPUが動作していて、副制御部40bに演出等を実行させる必要が生じ、そのためのコマンドを生成するときに、当該CPUは図5(a)の処理を実行する。
S1:第1電文を生成する。
制御部40のCPUは、必要とされた演出等の動作に対応する第1電文を生成する。当該動作と第1電文の関係は予め定められていて、例えばテーブルの形式でメモリ(ROM)に格納されている。制御部40のCPUは当該メモリを検索して、必要な処理に対応する第1電文を決定する。
S2:第2電文以降の電文を生成するために、電文の数を設定する。
コマンドが第1電文とひとつの第2電文とからなるときは、第2電文の数=1、k=1とする(kは電文の数をカウントするためのパラメータ)。同様に、第1電文と2つの第2電文からなるときは、第2電文の数=2とする。上記テーブルにおいて、第1電文とこれに対応する電文の数を予め格納しておけば、コマンド毎に電文の数を変えることもできる。
S3:第n電文を生成する。
第1電文が決まれば、これに続く第2電文は所定のものに限定される。例えば、実行する演出の種類によって第2電文は選択される。例えば、上記テーブルにおいて、第1電文と、これに対応して選択可能な複数の第2電文(例えば第2a電文、第2b電文、・・・)が予め定義されていて、制御部40のCPUは、必要とされた演出等の動作に対応して複数の第2電文からいずれかを選択する(例えば第2a電文を選択して、これを第2電文とする)。第3電文以降についても同様である。
S4:電文生成終了したかどうか判定する。
具体的には、kが予め定められた電文の数(上記テーブルを参照して選択された演出等の動作に対応する電文の数)に達したら、S4でYESとなる。S4でNOの場合は、kをk+1として(S6)、次の電文の生成を行う。
S5:第1電文及び第2電文を送信する。
上記手順により生成された第1電文及び第2電文をまとめて、一つのコマンドとして副制御部40bへ向けて送信する。第1電文及び第2電文は連続して送信されるので、一つのコマンドに他のコマンドの電文が混じることはない。
次に、コマンド受信部RXについて説明を加える。
図6は、コマンド受信部RXの機能ブロック図である。
R0は、制御部40からの信号を受信する受信機(通信用IC)である。制御部40のコマンド送信部TXはシリアル信号を出力しているから、受信機R0はシリアル信号を受信することになる。シリアル信号による伝送は公知であるので、その説明は省略する。
当該伝送の際に、パリティエラーやフレーミングエラーなどのエラーが生じることがある。データ送信の際に、データビット(例えば8ビット)に1ビットのパリティビットを付加し、パリティビットを含むデータビット全体で1の数が偶数(あるいは奇数)となるように調整されている。受信側でパリティビットを含むデータビット全体で1の数を調べ、それが偶数(あるいは奇数)とならないときは、ノイズ等によりデータが変化したとして、通信エラーが発生したと判定する。これがパリティエラーである。また、データ送信の際に、データビットの前に予め定められたスタートビットを付加するとともに、データビットの後ろにストップビットを付加するが、ストップビットを検知できないとき、フレーミングエラーが発生したと判定する。パリティエラーやフレーミングエラーの内容及びその検知手法は公知であるので、これ以上の説明は割愛する。
受信機R0は、パリティエラーやフレーミングエラーを自動的に検知する機能を備えており、パリティエラー又はフレーミングエラーが発生したと判定したときは、図示しない内蔵エラーフラグをセット(=1)する。内蔵エラーフラグは、レジスタあるいはメモリで構成される。なお、この内蔵エラーフラグを、図6のエラーフラグEFと兼用させるようにしてもよい。
R1は、制御部40から受信したコマンド、つまり電文1、電文2(以下では、コマンドは電文1と電文2の2つからなるものとする)を受信した順番で格納しているFIFOバッファである。
なお、図では、受信機ROとFIFOバッファR1を別個に表示しているが、これらがひとつのICとして構成されることもある。
FIFOとは、先入れ先出し(first-in first-out)のことであり、最初に格納されたデータが最初に取り出されるようなバッファ、すなわち時間的にもっとも古いデータが優先的に取り出されるようなバッファである。
FIFO型バッファは公知であるが、簡単に説明を加える。FIFO型バッファは、例えば、複数のD型ラッチを直列に接続するようにして構成される。接続されるラッチの数の多い方が、より多くのデータを格納することができる。ラッチの数を段数と呼ぶことがある。FIFO型バッファは段数分だけデータを格納できる。入力側のラッチに入力されたデータは自動的に出力側へ移動して、順番に取り出される。データが取り出されない場合でも、FIFO型バッファは段数分だけデータを格納できる。データが入力されているにもかかわらずデータが取り出されず、その結果、全ての段にデータが格納された状態になると、もはやデータを受け取ること(格納すること)ができなくなる。これをFIFOフル(FIFO満杯)であると呼ぶ。
制御部から複数の電文からなるコマンドを送信する場合、副制御部において何らかの原因でFIFOフルとなると、言い換えるとFIFOバッファがオーバーフローすると、送信されたデータはバッファに格納されず、その結果当該データは失われることになる。このため、副制御部はコマンドの受信に失敗することになる。
なお、受信機R0は、FIFOバッファR1へのデータ蓄積が限界を超えたときに、オーバーランエラーを発生する。
上述のように、FIFOバッファR1からは、書き込んだ順番でデータを読み出すことができる。FIFOバッファR1は、データを全部読み出したときに、その全てが自動的にクリアされるような機構を備えることが好ましい。例えば、FIFOバッファR1が空(エンプティ)になったときにその旨を示す信号を外部へ出力するとともに、当該信号でバッファの各ラッチをクリアするようにする。また、FIFOバッファR1は、FIFOフルを示す信号を外部へ出力するものとする。
なお、FIFOバッファR1のことを、単に「FIFO」と記すことがある。
R2は、FIFOバッファR1から読み出した電文1、電文2からコマンドを構築するコマンド構築部である。
R3は、コマンド構築部R2で構築されたコマンドを格納するコマンドバッファである。ここに格納されているコマンドは、副制御部40bのCPUやVDPに所定の演出を実行させることができるものである。
R4は、予め定められた間隔でコマンド構築部R2に対して割り込み信号を与えるタイマーである。タイマーR4からの信号に基づきコマンド構築部R2はコマンドの読み出し及び構築を行う。
EFは、パリティエラー又はフレーミングエラーが発生したときにセットされるエラーフラグである。このフラグは、例えばCPUのレジスタあるいはメモリで予め指定された領域(番地)であるが、当該フラグをどこにどのように構成するかは任意である。
R6は、コマンド構築部R2がコマンドを構築する際に参照する参照テーブルである。参照テーブルR6は、正しい電文1と電文2の組み合わせが予め格納されている。例えば、参照テーブルR6において、xxhという電文1に対応する電文2としてaah、bbhが定義されているとする(hは16進数を意味する)。コマンド構築部R2でxxh+aahというコマンドを構築したとき、参照テーブルR6を参照することで、これは正しいコマンドであることが分かる。これに対し、xxh+cchというコマンドになったら、これらは参照テーブルR6に定義されていない組み合わせであるから、当該コマンドは不正であることが分かる。
コマンド構築部R2やタイマーR4は、CPUが所定のプログラムを実行することで実現されるが、これらをICなどのハードウエアで実現することもできる。参照テーブルR6は、メモリ(ROM)でテーブルの形式あるいはプログラム上で定義されている。
図7に、演出コマンドから演出デバイスそれぞれのコマンド読み出しまでに係る装置のブロック図を示す。図7の各要素は、例えば、副制御部40bに内蔵されている。コマンド読出生成部40cなどの処理部は、具体的には、副制御部40bのCPUが所定のプログラムに従って動作することで実現される(ICなどのハードウエアで実現するようにしてもよい)。なお、図7では、演出デバイスがA乃至Cの3つの場合を示しているが、これは例示であることは言うまでもない。
40cは、コマンドバッファR3から上記コマンドを読み出し、これに従って複数の演出デバイスを制御するためのコマンドをそれぞれ生成してバッファに書き込むコマンド読出生成部である。BuffA〜BuffCは、複数の演出デバイスそれぞれに設けられたバッファである。BuffAはサウンド装置用のバッファ、BuffCは液晶表示装置用バッファ、BuffBは、他の演出デバイスB用のバッファである。
CRe−A〜CRe−Cは、バッファBuffA〜BuffCから所定のタイミングでコマンドを読み出すコマンド読出部である。
コマンド読出部CRe−Aで読み出されたコマンドは音響制御部46へ送られる。コマンド読出部CRe−Cで読み出されたコマンドはVDPへ送られる。コマンド読出部CRe−Bで読み出されたコマンドは、例えば、ランプ制御部44又は可動体制御部47などへ送られる。
図8は、図6及び図7の装置において実行される処理フローチャートである。
S11:受信機R0で、コマンド(演出コマンドを含む)を制御部40から受信する。
S12:コマンド構築部R2で、受信したコマンドをコマンドバッファR3に格納する。
コマンド構築部R2がプログラムで実現されているのであれば、副制御部40bのCPUは、制御部40からコマンドを受信すると、当該コマンドをコマンドバッファR3に書き込む。
そして、コマンド読出生成部40c(副制御部40bのCPU)は、S13〜S15の処理を実行する。
S13:コマンドバッファR3からコマンドを取り出す。
S14:前記コマンド(具体的には、演出指示用コマンドである)の内容を解析し、その結果に基づきデバイス毎にデバイス制御用コマンドを生成する。
制御部40から受けるコマンドは、どのような演出を行うかを指示するものであり、演出デバイスを直接制御するものではない。そこで、コマンド読出生成部40cがコマンドを解析し、デバイス毎のデバイス制御用コマンドを生成する。例えば、演出指示用コマンドが液晶表示装置LCDに大当たりの画像を表示し、ランプなどを点滅させ、大音量のファンファーレを流すものであれば、液晶表示装置用コマンドとして大当たり画像表示コマンドを、サウンド装置用コマンドとしてファンファーレの発生コマンドを、ランプ制御部用コマンドとしてランプの点滅コマンドを生成する。
S15:デバイス制御用コマンドを各デバイス用バッファに格納する。
上記例では、大当たり画像表示コマンドをバッファBuffCに格納し、ファンファーレの発生コマンドをバッファBuffAに格納し、ランプの点滅コマンドをバッファBuffBに格納する。
図9は、発明の実施の形態に係るコマンド受信・コマンドバッファへの登録処理のフローチャートである。図9の処理は、図8のS11及びS12に相当する。以下、図9を参照して当該処理の説明を加える。
S20:受信機R0でコマンド(データ)を受信する。
受信機R0は、データ受信のためのメモリやCPUを内蔵しており、外部からのシリアル信号を受けるとこれを自動的に受信する。このような処理及びそのための構成は公知である。
S21:正常に受信できたかどうか判定する。
受信機R0は、パリティエラーやフレーミングエラーを自動的に検知する機能を備えており、パリティエラー又はフレーミングエラーが発生したと判定したときは、内蔵エラーフラグをセット(=1)する。
S22:内蔵エラーフラグを調べて正常に受信できたと判断したとき(S21でYES)、エラーフラグEFはクリア(=0)されたままである。エラーフラグEFがセットされていたときは、これをクリアする。
S23:内蔵エラーフラグを調べて正常に受信できなかったと判断したとき(S21でNO)、エラーフラグEFをセットする。そして、受信データが存在するかどうか調べる(S24)。例えば、ストップビットが検出できないだけであれば、それより前に受けたパリティビットを含むデータビットは、受信機R0のレジスタに格納されている(これに対し、もしスタートビットを検出できなければ、データ受信そのものが行われない)。データビットの受信が確認でき、しかもそのパリティが正しければ、一応当該データビットは正しく受信できており、単にストップビットを受信できなかっただけと考えることができる。このような場合、当該データを有効とする(S24でYES)。
S25:受信したデータ(S24で一応受信できたと判定されたものも含む)をコマンドバッファR3へ登録する。
S26:コマンドバッファR3を調べる。
電文1と電文2が揃ったときは(S27でYES)、さらにエラーフラグEFを調べる(S28)。
電文1と電文2が揃い、かつ、エラーフラグEFがセットされていないとき(=0)、電文1と電文2を組み合わせてコマンドを構成する(S30)。
電文1と電文2が揃い、かつ、エラーフラグEFがセットされているとき(=1)、電文1のエラービットをオン(=1)にする(S29)とともに、電文1と電文2を組み合わせてコマンドを構成する(S30)。エラービットは、図11(b)に示すように、第1電文の先頭ビット(MSB)である。当該ビットは、同図(a)に示すように、第1電文であることを示すものであったが、FIFOバッファR1に格納後は電文1とそれ以外の識別が不要になったため(格納の順番で区別できる)、使用されていなかったので、エラービットに転用したものである。これによりコマンド毎に専用フラグ領域を確保でき、コマンド毎にエラー判定が可能となる。
図10は、発明の実施の形態に係るコマンドバッファからの読出処理のフローチャートである。図10の処理は、図8のS13に相当する。以下、図10を参照して当該処理の説明を加える。
S40:コマンドバッファR3が空かどうか判定する。
コマンド構築部R2により構築され格納されたコマンドが存在すればS40でNO、当該コマンドが存在しなければS40でYESとなる。
S40でYESのとき、エラーフラグEFを読み出し、それがセットされているときは、コマンド受信においてエラーが発生したことを次の処理へ伝える(S43)。このことは、制御部40から送られたコマンドが欠落したことを意味する。コマンドが失われると、副制御部40bによる演出が行われないことになり、遊技者の興趣を損なうことになる。そこで、演出を行う際に、コマンドが失われたことを認識しつつ処理を行うことで、遊技者の興趣を損なわないようにする。
例えば、失われたコマンドを正常に受信できたその前後のコマンドで補間する(前後のコマンドに基づき実行すべきコマンドを選択する、前後のコマンドの処理結果の中間の結果を出すようにする)、あるいは直前のコマンドを繰り返す、直後のコマンドを先に実行することなどが考えられる。液晶表示装置用のコマンドが失われたとき、例えば、コマンド読出生成部40cにおいて、エラーフラグEFからの情報に基づき、直前の描画コマンドを再度実行する。これにより、描画が行われないことや画像が表示されないこと(コマ落ちなど)を防止する。サウンドの場合は直前のコマンドと同じ音響を発生する。
繰り返すと、S43において、コマンド読出生成部40cが行う処理(予め定められた処理)とは、(1)コマンド受信においてエラーが発生したことを次の処理(例えばコマンド読出部CRe−A乃至CRe−C)へ伝えること、(2)前後のコマンドと比較してそれらと矛盾していなければ実行し、矛盾していれば当該コマンドを破棄すること、(3)失われたコマンドを正常に受信できたその前後のコマンドで補間すること、(4)直前のコマンドを繰り返すこと、(5)直後のコマンドを先に実行すること、などである。
S41:S40でNO、すなわちコマンドが存在するときはコマンドを読み出す。
S42:読み出したコマンドのエラービットを調べる。
エラービットがセットされていなければ(S42でNO)、当該コマンドにしたがって各演出デバイスが処理を実行する(S44)。
エラービットがセットされていれば(S42でYES)、エラー存在を前提として各演出デバイスが処理を実行する(S45)。S42の処理のエラービットの判定により当該コマンドにエラーである可能性があることを認識できる。例えば、エラーである可能性を認識した場合は、当該コマンドを破棄して実行を止める、前後のコマンドと比較してそれらと矛盾していなければ実行し、矛盾していれば当該コマンドを破棄する、などの処理を行い得る。例えば、前後のコマンドが液晶表示装置用の画像の描画を行うものであるのに対し、読み出された当該コマンドが画面の切り替えを行うものであれば、これらのコマンド間で矛盾が生じているとすることができる。前後のコマンドと比較する代わりに、参照テーブルR6などに予め格納されている正しいコマンド一覧表と比較してその内容と矛盾するかどうか判定するようにしてもよい。例えば、コマンド一覧表になければ当該コマンドを破棄する。このような処理を、コマンド読出生成部40cに行わせることができる。
繰り返すと、S45において、コマンド読出生成部40cが行う処理(予め定められた処理)とは、(1)コマンド受信においてエラーが発生したことを次の処理(例えばコマンド読出部CRe−A乃至CRe−C)へ伝えること、(2)前後のコマンドと比較してそれらと矛盾していなければ実行し、矛盾していれば当該コマンドを破棄すること、(3)失われたコマンドを正常に受信できたその前後のコマンドで補間すること、(4)直前のコマンドを繰り返すこと、(5)直後のコマンドを先に実行すること、などである。
上記エラーフラグやエラービットの使い方は様々であり、上記例に限定されない。
図12は、発明の実施の形態に係るメインコマンド受信からコマンドバッファ読出までの処理の説明図である。以下、この図について説明を加える。
符号アでは、制御部40からNo.1の電文1を受信する。この受信の際にエラーは発生しなかったものとする。したがって、エラーフラグはセットされず、正常のままであり、当該No.1の電文1はコマンドバッファにそのまま登録される(符号アの矢印はこのことを意味する、符号ウを除き、以下同様)。符号アでは、No.1の電文1のみを受信し、電文2の受信がまだなので、コマンドバッファの読み出しは行われない(コマンドバッファには、No.1の電文1以外のコマンドが格納されていないものとする)。
符号イでは、制御部40からNo.1の電文2を受信する。この受信の際にエラーは発生しなかったものとする。したがって、エラーフラグはセットされず、正常のままであり、当該No.1の電文2はコマンドバッファにそのまま登録される。コマンドバッファには、すでにNo.1の電文1が格納されているから、電文1と電文2を組み合わせることにより、コマンドNo.1が完成する。そして、所定のタイミングで当該コマンドNo.1が読み出される。
符号ウでは、制御部40からコマンドを受信する際に、何らかの原因でエラーが生じている。これを受けて、エラーフラグがセットされる(エラーフラグ=異常)。符号ウの例では、受信データが失われたので(???はデータが失われたことを意味する)、コマンドバッファにはデータは書き込まれない。符号ウの例ではコマンドバッファは空なので、エラーフラグの状態(エラーフラグ=異常)が、コマンドバッファの読み出し側へ通知される。なお、コマンドバッファが空でなければ通知されないが、この場合、コマンドバッファの読み出し側は、エラービットによりエラー発生を知ることができる(符号オ参照)
符号エでは、制御部40からNo.2の電文1を受信する。この受信の際に何らかの原因でエラーが生じている。これを受けて、エラーフラグがセットされる(エラーフラグ=異常)。しかし、受信データは失われず、No.2の電文1を一応受信できたものとする。例えば、フレーミングエラーにおいてデータを一応確認できたときである。フレーミングエラーとは、データを受信した時にストップビットが検出出来ない(データフレームが規定の仕様でない)時に出るエラーである。データフレームは、例えば、HからLに変化した後のLのスタートビットから始まり、所定長のデータ、所定ビットのHのストップビットで構成されるから、正常なフレームであればLが続く長さには制限がある(データの後にはストップビットが存在する)。したがって、所定長にわたってLが続けばフレーミングエラーとなるが、このときでも一応データは受信できている(受信データに誤ったビットが存在する可能性が高いことに注意)。符号エでは、エラーフラグをセットするとともに、受信したNo.2の電文1をコマンドバッファに書き込む。
符号オでは、制御部40からNo.2の電文2を受信する。この受信の際にエラーは発生しなかったものとする。これを受けて、エラーフラグはクリアされる。当該No.2の電文2はコマンドバッファにそのまま登録される。コマンドバッファには、すでにNo.2の電文1が格納されているから、電文1と電文2を組み合わせることにより、コマンドNo.2が完成する。しかし、No.2の電文1の受信時にエラーフラグがセットされているから、コマンドNo.2のエラービットがオンになる。なお、エラーフラグのクリアは、コマンドNo.2のエラービットをオンにした後にクリアするとよい。そして、所定のタイミングで当該コマンドNo.2が読み出される。コマンドバッファ読み出し側では、エラービットにより当該コマンドNo.2にエラーである可能性があることを認識できる。例えば、エラーである可能性を認識した場合は、当該コマンドを破棄して実行を止める、前後のコマンドと比較してそれらと矛盾していなければ実行し、矛盾していれば当該コマンドを破棄する、などの処理を行い得る。前後のコマンドと比較する代わりに、正しいコマンド一覧表と比較してその内容と矛盾するかどうか判定するようにしてもよい(コマンド一覧表になければ当該コマンドを破棄する)。なお、エラービットはコマンドバッファ読出の際に消去される(エラービットがコマンドを構成するデータ(ビット)として認識されないようにするため)。
符号カでは、制御部40からNo.3の電文1を受信する。この受信の際にエラーは発生しなかったものとする。したがって、エラーフラグはセットされず、正常のままであり、当該No.3の電文1はコマンドバッファにそのまま登録される。符号カでは、No.3の電文1のみを受信し、電文2の受信がまだなので、コマンドは構成されず、コマンドバッファの読み出しは行われない。
図13は、発明の実施の形態に係るコマンドバッファのオーバーフロー時の処理のフローチャートである。
コマンドバッファR3は、リングバッファで構成される。リングバッファとは、バッファを環状で管理、運用する制御手法及びこれにより実現されるバッファのことである。リングバッファは、ある一定の領域のメモリを確保しておき、その範囲内を「環」であるように扱う。例えば、当該「環」を一方方向に回るものとするとともに、リードポインタ(読み出し用のポインタ)とライトポインタ(書き込み用のポインタ)を変数として用意する。リングバッファに書き込むと、ライトポインタが進む。リードポインタは、ライトポインタの示す位置まで読み出すことができる。またライトポインタは、リードポインタを通り越すことは出来ない。書き込みは、現在のライトポインタからバッファに書きはじめる。書いたらライトポインタを一つ進めるが、それがリードポインタに追いついてしまった場合はバッファが一杯であるので、それ以上書き込むことはできない。これがオーバーフローの状態である。
リングバッファの読み出しは、リードポインタから順次読み出す。ライトポインタと一致した時点で全てを読み終えたとして終了する。ライトポインタ、リードポインタ、いずれもバッファの最後まで至った場合は、先頭のアドレスに戻す。これが、概念的にあたかも環であるかのようにして処理されるゆえんである。リングバッファによれば、「実際の領域」と「二つのポインタ変数」のみで、溢れることの無いバッファ管理が実現できる。
なお、ポインタ(pointer)とは、つぎにアクセスすべきレコードの番地を保持する命令あるいはそのためのメモリの領域やレジスタのことである。ポインタが進むとは、ポインタの内容を更新して次の番地を示すようになることである。
図13の処理について説明を加える。
S50:ライトポインタがリードポインタに追いついたかどうか判定する。
ライトポインタがリードポインタに追いついたとは、ライトポインタの示すアドレスとリードポインタの示すアドレスの差がポインタの進行単位に一致していること((リードポインタ)−(ライトポインタ)=1)、言い換えれば、ライトポインタを進めるとリードポインタに一致してしまうことあるいはこれよりも進んでしまうこと(例えば、(ライトポインタ)+1≧(リードポインタ)である。ライトポインタがリードポインタと一致していること((ライトポインタ)=(リードポインタ))も含めてもよい。
この状態(S50でYES)において、コマンドを受信したとき(S51でYES)、S52以降の処理を実行する。コマンドを受信したときとは、FIFOバッファR1にコマンド(電文1、電文2)が格納されている状態で、タイマーR4によりコマンド構築部R2が当該コマンド(電文1、電文2)を読み出している状態である。
S52:リードポインタを進める。
コマンドの読み出しの有無にかかわらず、強制的にリードポインタを進める。これによりコマンドを書き込む領域を確保する。なお、リードポインタを強制的に進めることで読み出せなくなるコマンドが生じる。
リングバッファでオーバーフローが生じたときには、「受信したコマンド(データ)を破棄する」「登録済みのコマンドを破棄する」のいずれかを選択することになる。本発明の実施の形態に係る遊技機では、受信エラー時の復旧を考慮しているので、リングバッファでオーバーフローが生じたときは、復帰が望めるだけのコマンド(データ)が蓄積されている可能性が高いことから、「登録済みのコマンドを破棄する」を選択している。
S53:ライトポインタを進める。
S54:ライトポインタに従って、受信したコマンドを書き込む。
S52とS53の処理により新しいコマンドを登録する領域が確保されている。
S55:リートポインタの示すコマンドを特定する。
S56:特定されたコマンドのエラービットをオンにする。
S55とS56の処理により、次に読み出されるコマンドのエラービットをオンにする。当該エラービットにより、当該コマンドよりも前にコマンドが存在したが、それが失われたことを知ることができる。そして、失われたコマンドを正常に受信できたその前後のコマンドで補間する(前後のコマンドに基づき実行すべきコマンドを選択する、前後のコマンドの処理結果の中間の結果を出すようにする)、あるいは直前のコマンドを繰り返す、直後のコマンドを先に実行することなどの特別の処理を行うことができる。
図14は、発明の実施の形態に係るコマンドバッファ(リングバッファ)の読み出し処理の説明図であり、特にコマンドバッファがオーバーフローしたときの処理を示す。ライトポインタは書き込みアドレスを示すポインタであり、書き込み時はひとつ先の場所(+1のアドレス)にデータを書き込む。リードポインタは読み出しアドレスを示すポインタであり、読み出し時はひとつ先の場所(+1のアドレス)からデータを読み出す。この図に従って説明を加える。
同図の「オーバーフロー前」は、オーバーフロー直前の状態を示す。リングバッファのリードポインタのすぐ前にライトポインタが存在する(言い換えれば、ライトポインタがリードポインタに追いついてしまっている)。ライトポインタはリードポインタを追い越せないため、データが新たに読み出されない限り、同図の例ではNo.1のコマンドが読み出されない限り、新たなデータを受信するとオーバーフローが生じることになる。
同図の「オーバーフロー前」では、データが新たに読み出される前にNo.55のコマンドを受信するために、オーバーフローが発生する。本発明の実施の形態におけるオーバーフローの際の動作について、同図の「オーバーフロー後」を参照して説明を加える。
同図の「オーバーフロー後」は、オーバーフロー直後の状態を示す。本発明の実施の形態では、リングバッファが満杯になった状態で新たなデータ(コマンド)を受信した場合、新たなデータを書き込むことを優先する。そのため、古いデータが上書きされて失われることがある。同図の「オーバーフロー後」では、リードポインタを強制的に進め(アドレスを+1する)、ライトポインタが動けるようにする。そして、ライトポインタに従ってコマンドを書き込む(同図の例ではNo.55のコマンドを書き込む)。なお、当該コマンドが書き込まれた場所にはデータ(コマンド)はもともと存在せず、データは失われていない。しかし、リードポインタが進んだことによりNo.1のコマンドを読み出せなくなっている(読み出し時はリードポインタのひとつ先の場所(+1のアドレス)からデータを読み出すことに注意されたい)。同図のNo.1を消している線はこのことを意味する。異常の処理により、新しいコマンドは正常に書き込まれる。新しく書き込まれたコマンドについては特に問題は生じない。
これに対し、読み出されていない古いコマンド(同図のNo.1のコマンド)は、上述のように読み出せなくなる。このように、コマンドが読み出せなくなったこと、すなわち失われたことを示すために、読み出し可能な次のコマンド(同図のNo.2のコマンド)のエラービットをオンにする。これにより、コマンドが失われたことを通知することができる。
発明の実施の形態によれば、制御部から副制御部へのコマンド伝送においてエラーがあった場合でも、コマンドの再構成を行うことができる。
エラー発生情報をダミーのコマンド(通常コマンドと重複しない、エラー発生を意味するコマンド)として登録するダミーコマンド方式があるが、このやり方はエラー発生毎にコマンドひとつ分の領域を消費することになる。これはコマンドバッファ(リングバッファ)に登録できるコマンドの数の減少を意味し、好ましくない。しかも、連続でエラーが発生する場合の対策を講じなければならない。仮に全てのデータでエラーが発生した場合は、リングバッファの容量が半減することになる。また、連続エラーの時は登録しないなどの処理は、処理負荷の増大につながるので、避けることが好ましい。発明の実施の形態では、コマンドの電文1の先頭ビットでエラー判定を行うようにしたので、エラーの情報を付加してもデータ量(ビット数)は変わらず、登録できるコマンドの数の減少といった問題点がない。発明の実施の形態によれば、ダミーコマンド方式と比較して、これよりも多くのコマンドの再構成を行うことができる。
また、コマンドバッファにコマンドが存在していない場合において、エラー発生時に別個に設けたエラーフラグをセットしているので、「コマンドバッファにコマンドが存在していない状況でエラーが発生し、後に正常なコマンドを受信しなかった場合、エラー発生を検知できない」という問題を解決することができた。
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
40 制御部
40b 副制御部
40c コマンド読出生成部
R0 受信機
R1 FIFOバッファ
R2 コマンド構築部
R3 コマンドバッファ
EF エラーフラグ

Claims (2)

  1. 複数の演出デバイスと、内部抽選処理を含む遊技に係る制御及び演出に係る制御を実行するとともに前記複数の演出デバイスを制御するためのコマンドを生成する制御部と、前記制御部から受けた前記コマンドに基づき演出に係る処理を実行する副制御部と、を備える遊技機において、
    前記コマンドは、電文の開始を示す第1電文とこれに続く第2電文とを含むものであり、
    前記制御部は、前記副制御部に実行させる処理に対応して前記第1電文を生成し、前記第1電文に対応して前記第2電文を生成し、前記第1電文及び前記第2電文をこの順番で前記副制御部へ送信するコマンド送信部を含み、
    前記副制御部は、前記コマンド送信部から前記第1電文及び前記第2電文を含むコマンドを受信するとともに前記第1電文及び前記第2電文を受信する際のエラーを検知する受信機と、前記第1電文及び前記第2電文を受信した順番で格納するバッファと、所定のタイミングで前記バッファから前記第1電文及び前記第2電文を読み出し、これらに基づきコマンドを構築するコマンド構築部と、前記コマンド構築部で構築したコマンドを格納するコマンドバッファと、前記コマンドバッファから前記コマンドを読み出して前記複数の演出デバイスごとに演出用コマンドを生成するコマンド読出生成部と、前記受信機で前記エラーを検知したときにセットされるエラーフラグとを備えるコマンド受信部を含み、
    前記コマンド構築部は、前記コマンドを構築する際に、前記エラーフラグを調べ、前記エラーフラグがセットされているときは、前記コマンドに含まれる複数のビットのうちで予め定められたエラービットをセットした上でコマンドを構成し、
    前記コマンド読出生成部は、
    前記コマンドバッファにコマンドが存在するかどうか調べ、
    前記コマンドバッファにコマンドが存在しているときに、前記コマンドを読み出すとともに前記コマンドの前記エラービットがセットされているかどうか調べ、
    前記エラービットがセットされていないときは前記コマンドに基づき前記複数の演出デバイスを制御し、
    前記エラービットがセットされているときは予め定められた処理を実行し、
    前記コマンドバッファにコマンドが存在していないときに、前記エラーフラグを調べ、
    前記エラーフラグがセットされているときは予め定められた処理を実行する、ことを特徴とする遊技機。
  2. 前記コマンドバッファは、一次元のメモリであって、その最後と最初がつながった環状のメモリとして扱われるリングバッファと、前記リングバッファの書き込み用のポインタであるライトポインタ及び読み出し用のポインタであるリードポインタとを含み、
    前記コマンド構築部は、
    前記ライトポインタが前記リードポインタに追いついたとき、前記リードポインタ及び前記ライトポインタを進め、
    構築した前記コマンドを前記ライトポインタに基づき前記コマンドバッファに書き込み、
    書き込んだ前記コマンドの前記エラービットをセットする、ことを特徴とする請求項1記載の遊技機。
JP2009248280A 2009-10-28 2009-10-28 遊技機 Expired - Fee Related JP5368256B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009248280A JP5368256B2 (ja) 2009-10-28 2009-10-28 遊技機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009248280A JP5368256B2 (ja) 2009-10-28 2009-10-28 遊技機

Publications (2)

Publication Number Publication Date
JP2011092351A JP2011092351A (ja) 2011-05-12
JP5368256B2 true JP5368256B2 (ja) 2013-12-18

Family

ID=44110003

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009248280A Expired - Fee Related JP5368256B2 (ja) 2009-10-28 2009-10-28 遊技機

Country Status (1)

Country Link
JP (1) JP5368256B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5959261B2 (ja) * 2012-03-27 2016-08-02 株式会社ソフイア 遊技機
JP6085133B2 (ja) * 2012-09-19 2017-02-22 株式会社オリンピア 遊技機
JP5881114B2 (ja) * 2012-09-21 2016-03-09 株式会社三共 遊技機
JP5746290B2 (ja) * 2013-09-04 2015-07-08 株式会社三共 遊技機
JP2015084919A (ja) * 2013-10-30 2015-05-07 株式会社三共 遊技機
JP2016049229A (ja) * 2014-08-29 2016-04-11 京楽産業.株式会社 遊技機
JP6148374B2 (ja) * 2016-06-17 2017-06-14 株式会社三共 遊技機
JP6527121B2 (ja) * 2016-09-06 2019-06-05 株式会社三共 遊技機
JP6850022B2 (ja) * 2018-10-16 2021-03-31 株式会社ソフイア 遊技機
JP7045066B2 (ja) * 2018-10-16 2022-03-31 株式会社ソフイア 遊技機
JP6901780B2 (ja) * 2018-10-16 2021-07-14 株式会社ソフイア 遊技機
JP7305738B2 (ja) 2018-10-24 2023-07-10 株式会社藤商事 遊技機
JP7294627B2 (ja) * 2018-11-26 2023-06-20 株式会社ソフイア 遊技機
JP7272323B2 (ja) * 2020-06-08 2023-05-12 株式会社三洋物産 遊技機

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3695738B2 (ja) * 1999-08-20 2005-09-14 株式会社藤商事 弾球遊技機
JP2001087532A (ja) * 1999-09-24 2001-04-03 Aruze Corp 遊技機
JP2002052207A (ja) * 2000-08-11 2002-02-19 Sankyo Kk 遊技機
JP2003033533A (ja) * 2001-07-24 2003-02-04 Takasago Electric Ind Co Ltd 遊技機

Also Published As

Publication number Publication date
JP2011092351A (ja) 2011-05-12

Similar Documents

Publication Publication Date Title
JP5368256B2 (ja) 遊技機
JP5024843B1 (ja) 遊技台
JP4643420B2 (ja) 遊技機
JP7073083B2 (ja) 遊技機
JP5363544B2 (ja) 遊技機
JP5368255B2 (ja) 遊技機
JP2018166739A (ja) 遊技機
JP2016093394A (ja) 遊技機
JP2005027819A (ja) 遊技機及び遊技機におけるコマンドの通信方法並びにコマンド通信プログラム
JP6929315B2 (ja) 遊技機
JP2013027437A (ja) 遊技台
JP5746290B2 (ja) 遊技機
JP6867327B2 (ja) 遊技機
JP6830921B2 (ja) 遊技機
JP7073084B2 (ja) 遊技機
JP2020156538A (ja) 遊技機
JP5332029B2 (ja) 遊技台
JP5957119B2 (ja) 遊技機
JP2018166738A (ja) 遊技機
JP5881114B2 (ja) 遊技機
JP2021062274A (ja) 遊技機
JP2021003641A (ja) 遊技機
JP5351680B2 (ja) 遊技機
JP2008142204A (ja) 遊技機及び遊技機における乱数発生方法並びにプログラム
JP2016093390A (ja) 遊技機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130814

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130828

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130912

R150 Certificate of patent or registration of utility model

Ref document number: 5368256

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees