(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024118508
(43)【公開日】2024-09-02
(54)【発明の名称】遊技機
(51)【国際特許分類】
A63F 7/02 20060101AFI20240826BHJP
A63F 5/04 20060101ALI20240826BHJP
【FI】
A63F7/02 326Z
A63F5/04 603B
【審査請求】有
【請求項の数】1
【出願形態】OL
(21)【出願番号】P 2023024821
(22)【出願日】2023-02-21
(71)【出願人】
【識別番号】000154679
【氏名又は名称】株式会社平和
(74)【代理人】
【識別番号】110000936
【氏名又は名称】弁理士法人青海国際特許事務所
(72)【発明者】
【氏名】谷口 光一郎
【テーマコード(参考)】
2C088
2C182
【Fターム(参考)】
2C088BC25
2C088DA23
2C088EB56
2C182CD12
2C182DA26
(57)【要約】
【課題】集合発光体を適切に表示する。
【解決手段】本発明の遊技機は、それぞれ複数のLEDを有する複数の集合発光体L1~L5と、複数の集合発光体に接続され、複数の集合発光体それぞれの発光内容を示すデータ信号を所定の周期で切り換えて出力するデータ出力回路(シフトレジスタ回路Q1)と、複数の集合発光体に接続され、発光させる集合発光体を特定するコモン信号を所定の周期で切り換えて出力するコモン出力回路(シフトレジスタ回路Q2)と、所定の周期のうち開始後または終了前の所定時間において、データ出力回路のデータ信号の出力、および、コモン出力回路のコモン信号の出力のいずれか一方または双方を無効化する無効回路(パルス発生回路Q3、Q4、遅延回路Q5)と、を備える。
【選択図】
図7
【特許請求の範囲】
【請求項1】
それぞれ複数のLEDを有する複数の集合発光体と、
前記複数の集合発光体に接続され、前記複数の集合発光体それぞれの発光内容を示すデータ信号を所定の周期で切り換えて出力するデータ出力回路と、
前記複数の集合発光体に接続され、発光させる集合発光体を特定するコモン信号を前記所定の周期で切り換えて出力するコモン出力回路と、
前記所定の周期のうち開始後または終了前の所定時間において、データ出力回路のデータ信号の出力、および、コモン出力回路のコモン信号の出力のいずれか一方または双方を無効化する無効回路と、
を備える遊技機。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、遊技者に遊技上の利益を付与するか否かを抽選により決定する遊技機に関する。
【背景技術】
【0002】
一般に、遊技機(パチンコ機)では、遊技者のハンドル操作により遊技盤内の遊技領域に向かって遊技球が発射され、遊技領域を流下した遊技球が始動口に入球したことを条件に特別図柄に係る抽選が実行される。そして、特別図柄表示器において、特別図柄が変動表示され、さらに、抽選によって決定された特別図柄が停止表示されることで遊技者に抽選結果が報知される。このとき、特別図柄表示器に大当たりであることを示す特定の特別図柄が停止表示されると、通常の遊技に比べて遊技者に有利な大役遊技が開始される。この大役遊技では、アタッカー装置が所定回数開閉し、大入賞口への遊技球の入球が可能となるので、遊技者は多くの賞球の払出を受けることが可能となる。
【0003】
遊技機では、遊技に係る種々の状況を把握するため、例えば、7セグメントLEDのような集合発光体が設けられている。このような集合発光体を複数配し、複数の集合発光体に同時に情報を表示する場合において、集合発光体それぞれを時分割で表示するダイナミック点灯方式が採用される場合がある(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
このような複数の集合発光体をダイナミック点灯方式によって制御する場合、所定周期でデータ信号およびコモン信号を順次切り換えることとなる。しかし、データ信号とコモン信号との切り換えタイミングがずれることで、本来表示されるべき集合発光体と異なる集合発光体にデータが表示されてしまう、所謂、ゴースト現象が生じるおそれがある。例えば、データ信号よりコモン信号が遅れると、データ信号が切り換わっても、まだ、前回のコモン信号が有効なままなので、1の集合発光体に、本来表示されるべきデータ信号に対応する値に続いて次のデータ信号に対応する値も表示されてしまう。また、コモン信号よりデータ信号が遅れると、コモン信号が切り換わったタイミングでは、まだ、前回のデータ信号が有効に残っているので、次に表示される1の集合発光体に、前回のデータ信号に対応する値が表示された後に、本来表示されるべきデータ信号に対応する値が表示されることとなる。
【0006】
本発明は、このような課題に鑑み、集合発光体を適切に表示することが可能な遊技機を提供することを目的としている。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明の遊技機は、それぞれ複数のLEDを有する複数の集合発光体と、前記複数の集合発光体に接続され、前記複数の集合発光体それぞれの発光内容を示すデータ信号を所定の周期で切り換えて出力するデータ出力回路と、前記複数の集合発光体に接続され、発光させる集合発光体を特定するコモン信号を前記所定の周期で切り換えて出力するコモン出力回路と、前記所定の周期のうち開始後または終了前の所定時間において、データ出力回路のデータ信号の出力、および、コモン出力回路のコモン信号の出力のいずれか一方または双方を無効化する無効回路と、を備える。
【発明の効果】
【0008】
本発明によれば、集合発光体を適切に表示することが可能となる。
【図面の簡単な説明】
【0009】
【
図1】扉が開放された状態を示す遊技機の斜視図である。
【
図4】主制御基板の一部の回路構成を説明するための回路図である。
【
図5】集合発光体の点灯態様を説明するためのタイミングチャートである。
【
図6】集合発光体の他の点灯態様を説明するためのタイミングチャートである。
【
図7】主制御基板の一部の回路構成を説明するための他の回路図である。
【
図8】集合発光体の他の点灯態様を説明するためのタイミングチャートである。
【
図9】
図8のタイミングを詳細に説明するためのタイミングチャートである。
【
図10】副制御基板における、演出表示部、演出役物装置、演出照明装置、楽曲出力装置の制御態様を説明するためのブロック図である。
【
図11】副制御基板における制御態様を示すフローチャートである。
【
図12】テーブルに用いられるコマンドの一例を示す図である。
【
図14】積層構造を説明するためのタイミングチャートである。
【
図15】演出実行手段の処理例を示したタイミングチャートである。
【
図16】演出実行手段の他の処理例を示したタイミングチャートである。
【
図17】サブCPUとRTCとの通信態様の比較例を示した説明図である。
【
図18】サブCPUとRTCとの通信態様の一例を示した説明図である。
【
図19】サブCPUの動作を説明するためのフローチャートである。
【
図20】サブCPUとアンプとの通信態様の比較例を示したタイミングチャートである。
【
図21】CRC結果の生成処理を説明するための説明図である。
【
図22】サブCPUとアンプとRTCの通信態様の比較例を示したタイミングチャートである。
【
図23】CRC結果の生成処理を説明するための説明図である。
【
図24】サブCPUとアンプとRTCの通信態様の一例を示したタイミングチャートである。
【
図25】CRC結果の生成処理を説明するための説明図である。
【
図26】サブCPUの送信態様を説明するためのタイミングチャートである。
【
図27】スロットマシンの概略的な機械的構成を説明するための外観図である。
【
図28】スロットマシンの概略的な機械的構成を説明するための前面扉を開いた状態での外観図である。
【
図30】スロットマシンの概略的な電気的構成を示したブロック図である。
【発明を実施するための形態】
【0010】
以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
【0011】
本発明の実施形態の理解を容易にするため、まず、遊技機の機械的構成および電気的構成を簡単に説明し、その後、各基板における具体的な処理を説明する。
【0012】
図1は、本実施形態の遊技機100の斜視図であり、扉が開放された状態を示している。図示のように、遊技機100は、略矩形状に組まれた四辺によって囲繞空間が形成される外枠102と、この外枠102にヒンジ機構によって開閉自在に取り付けられた中枠104と、この中枠104に、ヒンジ機構によって開閉自在に取り付けられた前枠106と、を備えている。
【0013】
中枠104は、外枠102と同様に、略矩形状に組まれた四辺によって囲繞空間が形成されており、この囲繞空間に遊技盤108が保持されている。また、前枠106には、ガラス製または樹脂製の透過板110が保持されている。そして、これら中枠104および前枠106を外枠102に対して閉じると、遊技盤108と透過板110とが所定の間隔を維持して略平行に対面するとともに、遊技機100の正面側から、透過板110を介して遊技盤108が視認可能となる。
【0014】
図2は、遊技機100の正面図である。この図に示すように、前枠106の下部には、遊技機100の正面側に突出する操作ハンドル112が設けられている。この操作ハンドル112は、遊技者が回転操作可能に設けられており、遊技者が操作ハンドル112を回転させて発射操作を行うと、当該操作ハンドル112の回転角度に応じた強度で、不図示の発射機構によって遊技球が発射される。このようにして発射された遊技球は、遊技盤108に設けられたレール114a、114b間を上昇して遊技領域116に導かれることとなる。
【0015】
遊技領域116は、遊技盤108と透過板110との間隔に形成される空間であって、遊技球が流下または転動可能な領域である。遊技盤108には、多数の釘や風車が設けられており、遊技領域116に導かれた遊技球が釘や風車に衝突して、不規則な方向に流下、転動するようにしている。
【0016】
遊技領域116は、発射機構の発射強度に応じて遊技球の進入度合いを互いに異にする第1遊技領域116aおよび第2遊技領域116bを備えている。第1遊技領域116aは、遊技機100に正対した遊技者から見て遊技領域116の左側に位置し、第2遊技領域116bは、遊技機100に正対した遊技者から見て遊技領域116の右側に位置している。レール114a、114bが遊技領域116の左側にあることから、発射機構によって所定の強度未満の発射強度で発射された遊技球は第1遊技領域116aに進入し、所定の強度以上の発射強度で発射された遊技球は第2遊技領域116bに進入することとなる。
【0017】
また、遊技領域116には、遊技球が入球可能な一般入賞口118、第1始動口120、第2始動口122が設けられており、これら一般入賞口118、第1始動口120、第2始動口122に遊技球が入球すると、それぞれ所定の賞球が遊技者に払い出される。なお、賞球数は1個以上であれば何個でもよく、また、一般入賞口118、第1始動口120、第2始動口122のそれぞれで払い出す賞球数を異ならせてもよいし、同じ賞球数に設定してもよい。このとき、第1始動口120に遊技球が入球して払い出す賞球数を、第2始動口122に遊技球が入球して払い出す賞球数よりも少なく設定することも可能である。
【0018】
なお、第1始動口120内には第1始動領域が設けられ、また、第2始動口122内には第2始動領域が設けられている。そして、第1始動口120または第2始動口122に遊技球が入球して第1始動領域または第2始動領域に遊技球が進入すると、予め設けられた複数の特別図柄の中からいずれか1の特別図柄を決定するための抽選が行われる。各特別図柄には、遊技者にとって有利な大役遊技の実行可否や、以後の遊技状態をどのような遊技状態にするかといった種々の遊技利益が対応付けられている。したがって、遊技者は、第1始動口120または第2始動口122に遊技球が入球すると、所定の賞球を獲得するのと同時に、種々の遊技利益を受ける権利獲得の機会を獲得することとなる。
【0019】
また、第2始動口122には、可動片122bが開閉可能に設けられており、この可動片122bの状態に応じて、第2始動口122への遊技球の進入容易性が変化するようになっている。具体的には、可動片122bが閉状態にあるときには、第2始動口122への遊技球の入球が不可能となっている。これに対して、遊技領域116に設けられたゲート124内の進入領域を遊技球が通過すると、普通図柄の抽選が行われ、この抽選によって当たりに当選すると、可動片122bが所定時間、開状態に制御される。このように、可動片122bが開状態になると、当該可動片122bが遊技球を第2始動口122に導く受け皿として機能し、第2始動口122への遊技球の入球が容易となる。なお、ここでは、第2始動口122が閉状態にあるときに、当該第2始動口122への遊技球の入球が不可能であることとしたが、第2始動口122が閉状態にある場合にも一定の頻度で遊技球が入球可能となるように構成してもよい。
【0020】
さらに、遊技領域116には、遊技球が入球可能な大入賞口128が設けられている。この大入賞口128には、開閉扉128bが開閉可能に設けられており、通常、開閉扉128bが大入賞口128を閉鎖して、大入賞口128への遊技球の入球が不可能となっている。これに対して、前述の大役遊技が実行されると、開閉扉128bが開放されて、大入賞口128への遊技球の入球が可能となる。そして、大入賞口128に遊技球が入球すると、所定の賞球が遊技者に払い出される。
【0021】
なお、遊技領域116の最下部には、一般入賞口118、第1始動口120、第2始動口122、大入賞口128のいずれにも入球しなかった遊技球を、遊技領域116から遊技盤108の背面側に排出する排出口130が設けられている。
【0022】
そして、遊技機100には、遊技の進行中等に演出を行う演出装置として、液晶表示装置からなる演出表示装置200、駆動装置からなる演出役物装置202、さまざまな照明態様や発光色に制御されるランプからなる演出照明装置204、スピーカからなる楽曲出力装置206、遊技者の操作を受け付ける演出操作装置208が設けられている。
【0023】
演出表示装置200は、画像を表示する画像表示部からなる演出表示部200aを備えており、この演出表示部200aを、遊技盤108の略中央部分において、遊技機100の正面側から視認可能に配置している。この演出表示部200aには、図示のように演出図柄210a、210b、210cが変動表示され、これら各演出図柄210a、210b、210cの停止表示態様によって大役抽選結果が遊技者に報知される変動演出が実行されることとなる。
【0024】
演出役物装置202は、演出表示部200aよりも前方に配置され、遊技者が視認できる領域において移動や回転を行うことで、遊技者に大当たりの期待感を付与するものである。例えば、
図2における演出役物装置202としての回転役物202aは、上記の演出図柄210a、210b、210cの変動表示中などに、駆動源であるモータ(パルスモータやギヤードモータ)の回転に連動し、前後方向の軸を中心に回転する。また、
図2における演出役物装置202としての移動役物202bは、通常、遊技盤108における退避領域に退避しているが、上記の演出図柄210a、210b、210cの変動表示中などには、演出表示部200aの前方まで移動する。
【0025】
演出照明装置204は、例えばLED(Light Emitting Diode)で構成され、演出役物装置202や遊技盤108等に設けられており、演出表示部200aに表示される画像等に合わせて、さまざまに点灯制御される。
【0026】
楽曲出力装置206は、前枠106の上部位置や外枠102の最下部位置に設けられ、演出表示部200aに表示される画像等に合わせて、遊技機100の正面側に向けてさまざまな楽曲を出力する。
【0027】
演出操作装置208は、遊技者の押下操作を受け付けるボタンと、遊技者の回転操作を受け付ける回転操作部(例えば、ジョグダイヤル)で構成され、遊技機100の幅方向略中央位置であって、かつ、透過板110よりも下方位置に設けられている。この演出操作装置208は、演出表示部200aに表示される画像等に合わせて有効化され、操作有効期間内に遊技者の操作を受け付けると、当該操作に応じて、さまざまな演出が実行される。
【0028】
また、演出操作装置208の後方には、遊技機100から払い出される賞球や、遊技球貸出装置から貸し出される遊技球が導かれる上皿132があり、この上皿132が遊技球で一杯になると、遊技球は下皿134に導かれることとなる。また、この下皿134の底面には、当該下皿134から遊技球を排出するための球抜き孔(不図示)が形成されている。この球抜き孔は、通常、開閉板(不図示)によって閉じられているが、球抜きつまみ134aを図中左右方向にスライドさせることにより、当該球抜きつまみ134aと一体となって開閉板がスライドし、球抜き孔から下皿134の下方に遊技球を排出することが可能となっている。
【0029】
また、遊技盤108には、遊技領域116の外方であって、かつ、遊技者が視認可能な位置に、第1特別図柄表示器160、第2特別図柄表示器162、第1特別図柄保留表示器164、第2特別図柄保留表示器166、普通図柄表示器168、普通図柄保留表示器170、右打ち報知表示器172が設けられている。これら各表示器160~172は、遊技に係る種々の状況を表示するための装置である。
【0030】
(制御手段の内部構成)
図3は、遊技の進行を制御する制御手段の内部構成を示すブロック図である。主制御基板300は遊技の基本動作を制御する。この主制御基板300は、メインCPU300a、メインROM300b、メインRAM300cを備えている。メインCPU300aは、各検出スイッチやタイマからの入力信号に基づいて、メインROM300bに格納されたプログラムを読み出して演算処理を行うとともに、各装置や表示器を直接制御したり、あるいは演算処理の結果に応じて他の基板にコマンドを送信したりする。メインRAM300cは、メインCPU300aの演算処理時におけるデータのワークエリアとして機能する。
【0031】
上記主制御基板300には、一般入賞口118に遊技球が入球したことを検出する一般入賞口検出スイッチ118s、第1始動口120に遊技球が入球したことを検出する第1始動口検出スイッチ120s、第2始動口122に遊技球が入球したことを検出する第2始動口検出スイッチ122s、ゲート124を遊技球が通過したことを検出するゲート検出スイッチ124s、大入賞口128に遊技球が入球したことを検出する大入賞口検出スイッチ128sが接続されており、これら各検出スイッチから主制御基板300に検出信号が入力されるようになっている。
【0032】
また、主制御基板300には、第2始動口122の可動片122bを作動する普通電動役物ソレノイド122cと、大入賞口128を開閉する開閉扉128bを作動する大入賞口ソレノイド128cと、が接続されており、主制御基板300によって、第2始動口122および大入賞口128の開閉制御がなされるようになっている。
【0033】
さらに、主制御基板300には、第1特別図柄表示器160、第2特別図柄表示器162、第1特別図柄保留表示器164、第2特別図柄保留表示器166、普通図柄表示器168、普通図柄保留表示器170、右打ち報知表示器172が接続されており、主制御基板300によって、これら各表示器の表示制御がなされるようになっている。
【0034】
また、本実施形態の遊技機100は、主に第1始動口120または第2始動口122への遊技球の入球によって開始される特別遊技と、ゲート124を遊技球が通過することによって開始される普通遊技とに大別される。そして、主制御基板300のメインROM300bには、特別遊技および普通遊技を進行するための種々のプログラムや、各種の遊技に必要なデータ、テーブルが記憶されている。
【0035】
また、主制御基板300には、払出制御基板310および副制御基板330が接続されている。
【0036】
払出制御基板310は、遊技球を発射させるための制御、および、賞球を払い出すための制御を行う。この払出制御基板310も、CPU、ROM、RAMを備えており、主制御基板300に対して双方向に通信可能に接続されている。この払出制御基板310には遊技情報出力端子板312が接続されており、主制御基板300から出力される遊技進行上の種々の情報が、払出制御基板310および遊技情報出力端子板312を介して、遊技店(ホール)のホールコンピュータ等に出力されることとなる。
【0037】
また、払出制御基板310には、貯留部に貯留された遊技球を賞球として遊技者に払い出すための払出モータ314が接続されている。払出制御基板310は、主制御基板300から送信された払出個数指定コマンドに基づいて払出モータ314を制御して所定の賞球を遊技者に払い出すように制御する。このとき、払い出された遊技球数が払出球計数スイッチ316sによって検出され、払い出すべき賞球が遊技者に払い出されたかが把握されるようになっている。
【0038】
また、払出制御基板310には、下皿134の満タン状態を検出する皿満タン検出スイッチ318sが接続されている。この皿満タン検出スイッチ318sは、賞球として払い出される遊技球を下皿134に導く通路に設けられており、当該通路を遊技球が通過するたびに、遊技球検出信号が払出制御基板310に入力されるようになっている。
【0039】
そして、下皿134に所定量以上の遊技球が貯留されて満タン状態になると、下皿134に向かう通路内に遊技球が滞留し、皿満タン検出スイッチ318sから払出制御基板310に向けて、遊技球検出信号が連続的に入力される。払出制御基板310は、遊技球検出信号が所定時間連続して入力された場合に、下皿134が満タン状態であると判断し、皿満タンコマンドを主制御基板300に送信する。一方、皿満タンコマンドを送信した後、遊技球検出信号の連続入力が途絶えた場合には、満タン状態が解除されたと判断し、皿満タン解除コマンドを主制御基板300に送信する。
【0040】
また、払出制御基板310には、遊技球の発射制御を行う発射制御回路320が設けられている。払出制御基板310には、操作ハンドル112に設けられ、当該操作ハンドル112に遊技者が触れたことを検出するタッチセンサ112sと、操作ハンドル112の操作角度を検出する操作ボリューム112aと、が接続されている。そして、タッチセンサ112sおよび操作ボリューム112aから信号が入力されると、発射制御回路320において、遊技球発射装置に設けられた発射用ソレノイド112cを通電して遊技球を発射させる制御がなされる。
【0041】
副制御基板330は、主に遊技中や待機中等の各演出を制御する。この副制御基板330は、サブCPU330a、サブROM330b、サブRAM330cを備えており、主制御基板300に対して、不正防止の観点により、当該主制御基板300から副制御基板330への一方向に通信可能に接続されている。サブCPU330aは、主制御基板300から送信されたコマンドやタイマからの入力信号等に基づいて、サブROM330bに格納されたプログラムを読み出して演算処理を行うとともに、演出を実行制御する。このとき、サブRAM330cは、サブCPU330aの演算処理時におけるデータのワークエリアとして機能する。
【0042】
(主制御基板300の回路構成)
上述したように、主制御基板300には、第1特別図柄表示器160、第2特別図柄表示器162、第1特別図柄保留表示器164、第2特別図柄保留表示器166、普通図柄表示器168、普通図柄保留表示器170、右打ち報知表示器172が接続されている。これら各表示器160~172は、遊技に係る種々の状況を表示する。
【0043】
図4は、主制御基板300の一部の回路構成を説明するための回路図である。ここでは、各表示器160~172の一例として、集合発光体L1~L5を挙げ、メインCPU300aが複数の制御信号を通じて集合発光体L1~L5の点灯状態を制御する例を説明する。ここで、主制御基板300には、メインCPU300a、シフトレジスタ回路Q1、Q2、ドライバ回路P1、P2、集合抵抗R1が配され、発光基板322には、集合発光体L1~L5が配されている。そして、主制御基板300のコネクタと発光基板322のコネクタとが、直接、または、ハーネスを介して接続されている。
【0044】
シフトレジスタ回路Q1、Q2は、例えば、TTLシリーズの「74595」等のシフトレジスタで構成され、シリアル入力端子(SI)に入力されたメインCPU300aのシリアル信号を、クロック端子(SCK)の立ち上がりまたは立ち下がりタイミングでシフトレジスタにラッチおよびシフトする。ここで、シリアル信号は、例えば、16ビットで構成され、上位8ビットにコモン情報が含まれ、下位8ビットにデータ情報が含まれる。なお、ここでは、シフトレジスタ回路Q1、Q2が、クロック端子(SCK)の立ち上がりでシフトレジスタにラッチする例を挙げる。
【0045】
そして、シフトレジスタ回路Q1、Q2は、ラッチ端子(RCK)の立ち上がりまたは立ち下がりタイミングでシフトレジスタの値を出力レジスタにラッチし、イネーブル端子(/G)が有効な(LOW電位となっている)間、出力レジスタの値を出力端子(QH~QA)から出力する。なお、ここでは、シフトレジスタ回路Q1、Q2が、ラッチ端子(RCK)の立ち上がりで出力レジスタにラッチする例を挙げる。また、シリアル入力端子(SI)に入力されたシリアル信号は、シフトレジスタでシフトされた後、シリアル出力端子(QH’)から出力され、デイジーチェーン接続された他のシフトレジスタに伝達される。例えば、
図4の例では、シフトレジスタ回路Q1のシリアル出力端子(QH’)がシフトレジスタ回路Q2のシリアル入力端子(SI)に接続されている。したがって、メインCPU300aは、8ビットのシリアル信号を扱う2つのシフトレジスタ回路Q1、Q2に対し、16ビットのシリアル信号のみで情報を伝達することができる。
【0046】
ドライバ回路P1は、例えば、「62783」等のトランジスタアレイで構成され、IN端子(I8~I1)に応じて、OUT端子(O8~O1)に駆動電流を供給する。また、ドライバ回路P2は、例えば、「62083」等の反転出力トランジスタアレイで構成され、IN端子(I8~I1)に応じて、OUT端子(O8~O1)に反転した駆動電流を供給する。なお、シフトレジスタ回路Q1、Q2やドライバ回路P1、P2で接続されていない端子は未使用(予約)端子である。
【0047】
また、発光基板322における集合発光体L1~L4は、7セグメントLEDであり、集合発光体L5は個別に配されたLEDである。集合発光体L1~L4は、いずれも複数のLEDのアノード端子またはカソード端子が共通化されたコモン端子(C)を有しており、コモン端子(C)とセグメント端子(a~g、dp)に集合抵抗R1を通じて電位差が生じると(電流が流れると)その対応するセグメントが発光(点灯)する。なお、ここでは、カソード端子をコモン端子とする(カソードコモン)例を挙げて説明する。
【0048】
図4の例においては、シフトレジスタ回路Q2とドライバ回路P2とが、集合発光体L1~L5のうちの発光させる集合発光体を特定するコモン信号を時分割に切り換えて出力するコモン出力回路として機能する。そして、シフトレジスタ回路Q1とドライバ回路P1とが、コモン信号によって特定された集合発光体L1~L5に発光させるデータを示すデータ信号を共通して出力するデータ出力回路として機能する。こうして、集合発光体L1~L5に対応する5つのデータが、コモン信号に応じ、集合発光体L1~L5それぞれに時分割に切り換えて表示される。このように、集合発光体L1~L5を時分割で表示する点灯方式をダイナミック点灯方式という場合がある。
【0049】
図5は、集合発光体L1~L5の点灯態様を説明するためのタイミングチャートである。
図5のように、メインCPU300aからシリアル信号(SO)とクロック信号(CK)とが連続して出力され、任意のタイミングでラッチ信号(LC)が出力されると、シフトレジスタ回路Q1の出力端子(QH~QA)には、06h(00000110b)が出力され、シフトレジスタ回路Q2には、01h(00000001b)が出力される。ここでは、集合発光体L1~L5全てに同一のデータ信号(06h)が供給されるものの、集合発光体L1のコモン信号のみが有効(LOW電位)となっているので、集合発光体L1においてデータ信号が有効(HIGH電位)となるセグメントのみが点灯し、集合発光体L1においてのみ、例えば、数値「1」が表示される。次に、ラッチ信号(LC)が出力されると、シフトレジスタ回路Q1の出力端子(QH~QA)には、5Bh(01011011b)が出力され、シフトレジスタ回路Q2には、02h(00000010b)が出力される。ここでも、集合発光体L1~L5全てに同一のデータ信号(5Bh)が供給されるものの、集合発光体L2のコモン信号のみが有効(LOW電位)となっているので、集合発光体L2においてデータ信号が有効(HIGH電位)となるセグメントのみが点灯し、集合発光体L2においてのみ、例えば、数値「2」が表示される。
【0050】
このように、集合発光体L1~L5に対して、所定周期(例えば、1.49msec)でコモン信号を順次切り換え、その間に、対応するデータ信号を共通して出力する。こうして、実際は集合発光体L1~L5それぞれに時分割にデータが表示されているのに、恰も同時に表示されているように見せることができる。なお、その点灯時間は集合発光体L1~L5間で等しく、その間に流れる電流(電流値を決める抵抗)も等しいので、その輝度も均等になる。こうして、8つのデータ信号と5つのコモン信号といった少ない制御信号で、5つの集合発光体L1~L5の点灯状態を制御することが可能となる。
【0051】
ここでは、
図5で示すように、集合発光体L1~L5に対するデータ信号とコモン信号が同時に切り換わることで、集合発光体L1~L5それぞれの点灯状態を制御している。しかし、シフトレジスタ回路Q1、Q2やドライバ回路P1、P2は、種別差や個体差によって出力タイミングに差が生じ得る。例えば、ドライバ回路P1と比較してドライバ回路P2の方が、仕様上、出力タイミングが早くなっている。そうすると、所定のデータ信号に対応する値が、本来表示されるべきではない集合発光体に表示されてしまう、所謂、ゴースト現象が生じることとなる。
【0052】
例えば、データ信号よりコモン信号が遅れると、データ信号が切り換わっても、まだ、前回のコモン信号が有効なままなので、1の集合発光体に、本来表示されるべきデータ信号に対応する値に続いて次のデータ信号に対応する値も表示されてしまう。また、コモン信号よりデータ信号が遅れると、コモン信号が切り換わったタイミングでは、まだ、前回のデータ信号が有効に残っているので、次に表示される1の集合発光体に、前回のデータ信号に対応する値が表示された後、本来表示されるべきデータ信号に対応する値が表示されることとなる。
【0053】
このようなゴースト現象は、本来、データ信号とコモン信号との出力タイミングが1対1に対応しているところ、今回のデータ信号と前回または次回のコモン信号との出力タイミングが一部重なることによって生じ得る。そこで、以下では、ソフトウェアを制御し、意図しないデータ信号とコモン信号との出力タイミングの重畳を回避してゴースト現象の発生を抑制する。
【0054】
図6は、集合発光体L1~L5の他の点灯態様を説明するためのタイミングチャートである。
図6のように、メインCPU300aからシリアル信号(SO)とクロック信号(CK)とが連続して出力され、任意のタイミングでラッチ信号(LC)が出力されると、シフトレジスタ回路Q1の出力端子(QH~QA)には、06h(00000110b)が出力され、シフトレジスタ回路Q2には、01h(00000001b)が出力される。ここでは、集合発光体L1のコモン信号のみが有効(LOW電位)となっているので、集合発光体L1においてデータ信号が有効(HIGH電位)となるセグメントのみが点灯し、集合発光体L1においてのみ、例えば、数値「1」が表示される。メインCPU300aは、
図5と異なり、次のラッチ信号(LC)の出力タイミングにおいて、シフトレジスタ回路Q1の出力端子(QH~QA)に00h(00000000b)を出力させ、シフトレジスタ回路Q2に01h(00000001b)を出力させる。すなわち、コモン信号は有効(LOW電位)にしたまま、データ信号を無効(LOW電位)にする。そうすると、集合発光体L1のコモン信号は有効となっているものの、データ信号が無効なので、集合発光体L1は点灯せず、集合発光体L1~L5全てが消灯することとなる。メインCPU300aは、次のラッチ信号(LC)の出力タイミングにおいて、シフトレジスタ回路Q1の出力端子(QH~QA)に5Bh(01011011b)を出力させ、シフトレジスタ回路Q2に02h(00000010b)を出力させる。ここでは、集合発光体L1~L5全てに同一のデータ信号が供給されるものの、集合発光体L2のコモン信号のみが有効(LOW電位)となっているので、集合発光体L2においてデータ信号が有効(HIGH電位)となるセグメントのみが点灯し、集合発光体L2においてのみ、例えば、数値「2」が表示される。
【0055】
ここでは、集合発光体L1~L5に対して、
図5の倍の周期(例えば、2.98msec)でコモン信号を順次切り換え、その間に、まず、対応するデータ信号を出力し、その後、無効なデータ信号を出力することで、集合発光体L1~L5同士の点灯間に、集合発光体L1~L5全てが消灯する期間を設ける。
【0056】
かかる構成により、仮に、データ信号とコモン信号との出力タイミングが異なっていたとしても、同一のコモン信号の間に、前回のデータ信号または次回のデータ信号が出力されることがないので、ゴースト現象が生じることはない。
【0057】
なお、ここでは、所定の集合発光体に対するコモン信号を出力している間に、同集合発光体に対するデータ信号を出力し、その後、消灯を示すデータ信号を出力する例を挙げて説明したが、かかる場合に限らず、所定の集合発光体に対するコモン信号を出力している間に、まず、消灯を示すデータ信号を出力し、その後、同集合発光体に対するデータ信号を出力する(出力順を逆にする)としてもよい。
【0058】
また、ここでは、所定の集合発光体に対するコモン信号を出力している2周期の間の1周期において同集合発光体に対するデータ信号を出力し、その後、2周期目に消灯を示すデータ信号を出力する例を挙げて説明したが、かかる場合に限らない。例えば、所定の集合発光体に対するコモン信号を出力している期間を3周期以上とし、そのうち、選択された周期分だけ同集合発光体に対するデータ信号を出力し、その後、残った周期分だけ消灯を示すデータ信号を出力するとしてもよい。
【0059】
また、ここでは、所定の集合発光体に対するコモン信号を出力している間の一部の期間に、同集合発光体に対するデータ信号を無効とする例を挙げて説明したが、かかる場合に限らず、所定の集合発光体に対するデータ信号を出力している間の一部の期間に、同集合発光体に対するコモン信号を無効とするとしてもよい。また、コモン信号およびデータ信号を出力したのち、コモン信号およびデータ信号のいずれも一時的に無効としてもよい。
【0060】
しかし、上記のようにソフトウェアで対策すると、処理が煩雑になり、プログラムの容量も増加する。また、ソフトウェアで対策すると、データ信号またはコモン信号を切り換えるタイミングで、少なくとも1周期の間、集合発光体L1~L5全てが消灯する期間が生じることとなる。
【0061】
そこで、ここでは、ソフトウェアの変更を要すことなく、ハードウェアで対策する。具体的に、ソフトウェアでは、有効なデータ情報および有効なコモン情報を出力させつつ、ハードウェア(例えば、シフトレジスタ回路Q1、Q2)の出力を一時的に制限することで、データ信号およびコモン信号を一時的に無効化する。
【0062】
図7は、主制御基板300の一部の回路構成を説明するための他の回路図である。ここでも、
図4同様、各表示器160~172の一例として、集合発光体L1~L5を挙げ、メインCPU300aが複数の制御信号を通じて集合発光体L1~L5の点灯状態を制御する例を説明する。ここで、主制御基板300には、メインCPU300a、シフトレジスタ回路Q1、Q2、ドライバ回路P1、P2、集合抵抗R1に加え、パルス発生回路Q3、Q4、遅延回路Q5、集合抵抗R2、R3が配され、発光基板322には、集合発光体L1~L5が配されている。なお、
図7におけるシフトレジスタ回路Q1、Q2、ドライバ回路P1、P2、集合抵抗R1、集合発光体L1~L5の機能は、
図4におけるシフトレジスタ回路Q1、Q2、ドライバ回路P1、P2、集合抵抗R1、集合発光体L1~L5と実質的に等しいので、ここでは、主として、
図4と異なるパルス発生回路Q3、Q4、遅延回路Q5、集合抵抗R2、R3を詳述し、シフトレジスタ回路Q1、Q2、ドライバ回路P1、P2、集合抵抗R1、集合発光体L1~L5は詳しい説明を省略する。
【0063】
シフトレジスタ回路Q1、Q2は、シリアル入力端子(SI)に入力されたメインCPU300aのシリアル信号を、クロック端子(SCK)の立ち上がりタイミングでレジスタにラッチおよびシフトする。そして、シフトレジスタ回路Q1、Q2は、ラッチ端子(RCK)の立ち上がりタイミングでシフトレジスタの値を出力レジスタにラッチし、イネーブル端子(/G)が有効な(LOW電位となっている)間、出力レジスタの値を出力端子(QH~QA)から出力する。
【0064】
ただし、
図4と異なり、ここでは、シフトレジスタ回路Q1のラッチ端子(RCK)には、メインCPU300aのラッチ信号(LC)が直接入力されず、パルス発生回路Q3の出力信号が入力される。したがって、シフトレジスタ回路Q1は、パルス発生回路Q3の出力信号の立ち上がりでシフトレジスタの値を出力レジスタにラッチする。また、シフトレジスタ回路Q1のイネーブル端子(/G)は、
図4と異なり、LOW電位に固定されず、パルス発生回路Q3の出力信号が入力されている。パルス発生回路Q3は、例えば、74シリーズの「74123」等の単安定マルチバイブレータで構成され、入力されたトリガパルスの数だけ所定長の矩形波を出力する。例えば、パルス発生回路Q3は、メインCPU300aのラッチ信号(LC)の立ち上がりから、16.4μsecだけHIGH電位の矩形波を出力する。したがって、シフトレジスタ回路Q1は、メインCPU300aのラッチ信号(LC)の立ち上がりから、16.4μsecの間、出力レジスタの値を出力端子(QH~QA)から出力することができない。なお、本実施形態における時間長、例えば、矩形波の長さである16.4μsec等を、パラメータの変更により任意に設定することができることは言うまでもない。また、ここでは、時間長として、理論値(設計値)を挙げて説明するが、実際の時間長は理論値と異なる場合もある。
【0065】
なお、シフトレジスタ回路Q1は、イネーブル端子(/G)が無効(HIGH電位)の間、出力端子(QH~QA)がハイインピーダンスとなる。そこで、集合抵抗R2によって出力端子をプルダウンすることで、イネーブル端子(/G)が無効(HIGH電位)の間、出力端子(QH~QA)をLOW電位に固定する。こうして、シフトレジスタ回路Q1の出力を一時的にLOW電位にすることができるので、集合発光体にデータ信号が無効となるタイミングを生成することが可能となる。
【0066】
また、
図4と異なり、シフトレジスタ回路Q2のラッチ端子(RCK)には、メインCPU300aのラッチ信号(LC)が直接入力されず、パルス発生回路Q4を通じた遅延回路Q5の出力信号が入力される。パルス発生回路Q4は、例えば、74シリーズの「74123」等の単安定マルチバイブレータで構成され、入力されたトリガパルスの数だけ所定長の矩形波を出力する。例えば、パルス発生回路Q3は、メインCPU300aのラッチ信号(LC)の立ち上がりから、11.2μsecだけHIGH電位の矩形波を出力する。また、遅延回路Q5は、74シリーズの「7414」等のシュミットトリガ入力のインバータと、抵抗およびコンデンサの一次遅れ回路とで構成され、入力された矩形波の立ち上がりを所定時間(例えば、6.8μsec)遅延させ、矩形波の立ち下がりを所定時間(例えば、5.0μsec)遅延させる。したがって、シフトレジスタ回路Q2は、ラッチ信号(LC)より6.8μsec遅れた、遅延回路Q5の出力信号の立ち上がりで、シフトレジスタの値を出力レジスタにラッチすることとなる。また、シフトレジスタ回路Q2のイネーブル端子(/G)もLOW電位に固定されない。シフトレジスタ回路Q2のイネーブル端子(/G)には、パルス発生回路Q4に加え、遅延回路Q5によって遅延された信号が入力されている。したがって、シフトレジスタ回路Q2は、遅延回路Q5の出力信号の立ち上がりから、9.4(11.2-6.8+5.0)μsecの間、出力レジスタの値を出力端子(QH~QA)から出力することができない。
【0067】
なお、シフトレジスタ回路Q2は、イネーブル端子(/G)が無効(HIGH電位)の間、出力端子(QH~QA)がハイインピーダンスとなる。そこで、集合抵抗R3によって出力端子をプルダウンすることで、イネーブル端子(/G)が無効(HIGH電位)の間、出力端子(QH~QA)をLOW電位に固定する。こうして、シフトレジスタ回路Q2の出力を一時的にLOW電位にすることができるので、集合発光体にコモン信号が無効となるタイミングを生成することが可能となる。
【0068】
ドライバ回路P1は、IN端子(I8~I1)に応じて、OUT端子(O8~O1)に駆動電流を供給する。また、ドライバ回路P2は、IN端子(I8~I1)に応じて、OUT端子(O8~O1)に反転した駆動電流を供給する。また、発光基板322における集合発光体L1~L5は、ドライバ回路P1、P2の出力信号に基づいて所定のLEDを点灯する。
【0069】
ただし、上記のように、シフトレジスタ回路Q1、Q2の出力端子(QH~QA)は、所定時間の間、データ信号およびコモン信号が無効(LOW電位)となる。
【0070】
図8は、集合発光体L1~L5の他の点灯態様を説明するためのタイミングチャートである。
図8のように、メインCPU300aからシリアル信号(SO)とクロック信号(CK)とが連続して出力され、任意のタイミングでラッチ信号(LC)が出力されると、シフトレジスタ回路Q1の出力端子(QH~QA)には、06h(00000110b)が出力され、シフトレジスタ回路Q2には、01h(00000001b)が出力される。ここでは、集合発光体L1~L5全てに同一のデータ信号が供給されるものの、集合発光体L1のコモン信号のみが有効(LOW電位)となっているので、集合発光体L1においてデータ信号が有効(HIGH電位)となるセグメントのみが点灯し、集合発光体L1においてのみ、例えば、数値「1」が表示される。
【0071】
ただし、上記のように、データ信号およびコモン信号は、その切り替え時に一時的に無効化される。そうすると、メインCPU300aのラッチ信号(LC)の立ち上がりから所定時間は、集合発光体L1~L5全てのデータ信号が無効(LOW電位)となり、集合発光体L1のコモン信号も無効(HIGH電位)となっているので、集合発光体L1~L5が全て消灯する。
【0072】
ここでは、データ信号とコモン信号とが切り換わるタイミングで、両信号をハードウェアで一時的に無効とすることで、意図しないデータ信号とコモン信号との出力タイミングの重畳を回避してゴースト現象の発生を抑制することができる。なお、ここでは、ソフトウェアの変更を要さないので、プログラムの容量増加および処理負荷の増加を抑制することが可能となる。
【0073】
図9は、
図8のタイミングを詳細に説明するためのタイミングチャートである。ここでは、
図8における集合発光体L1を点灯する周期の前半に相当する「全消灯1」の期間を詳細に説明する。なお、
図9において期間を示す数値は全てμsec単位で示されている。
【0074】
図9のように、メインCPU300aからラッチ信号(LC)が出力されると、パルス発生回路Q3は、メインCPU300aのラッチ信号(LC)の立ち上がりから、16.4μsecだけHIGH電位の矩形波を出力する。かかるパルス発生回路Q3の出力信号は、シフトレジスタ回路Q1のイネーブル端子(/G)に入力されるので、出力信号がHIGH電位の間、シフトレジスタ回路Q1の出力は無効となる。したがって、シフトレジスタ回路Q1は、パルス発生回路Q3の出力信号の立ち上がりから、16.4μsecの間、出力レジスタの値を出力端子(QH~QA)から出力することができない。ドライバ回路P1の出力端子(O8-O1)は、シフトレジスタ回路Q1の出力端子(QH~QA)がLOW電位になってから、例えば、4.8μsec遅延してLOW電位になる。その後、ドライバ回路P1の出力端子(O8-O1)は、シフトレジスタ回路Q1の出力端子(QH~QA)が有効に出力されて、例えば、0.4μsec遅延して有効に出力される。
【0075】
また、メインCPU300aからラッチ信号(LC)が出力されると、パルス発生回路Q4は、メインCPU300aのラッチ信号(LC)の立ち上がりから、11.2μsecだけHIGH電位の矩形波を出力する。また、遅延回路Q5の出力信号は、パルス発生回路Q4の出力信号がHIGH電位になってから6.8μsec後にHIGH電位となり、パルス発生回路Q4の出力信号がLOW電位になってから5.0μsec後にLOW電位となる。かかる遅延回路Q5の出力信号は、シフトレジスタ回路Q2のイネーブル端子(/G)に入力されるので、出力信号がHIGH電位の間、シフトレジスタ回路Q2の出力は無効となる。したがって、シフトレジスタ回路Q2は、遅延回路Q5の出力信号の立ち上がりから9.4μsecの間、出力レジスタの値を出力端子(QA)から出力することができない。ドライバ回路P2の出力端子(O1)は、シフトレジスタ回路Q2の出力端子(QA)がLOW電位になって、例えば、0.4μsec遅延してHIGH電位になる。その後、ドライバ回路P2の出力端子(O1)は、シフトレジスタ回路Q2の出力端子(QA)が有効に出力されて、例えば、0.8μsec遅延して有効に出力される。
【0076】
ここで、シフトレジスタ回路Q2のイネーブル端子(/G)への制限入力開始を、シフトレジスタ回路Q1のイネーブル端子(/G)への制限入力開始より、例えば、6.8μsec遅延させているのは以下の理由による。すなわち、上述したように、シフトレジスタ回路Q1の出力がLOW電位になったとしても、ドライバ回路P1が前回出力したデータ信号の電荷が残り、例えば、4.8μsec遅延してLOW電位になる。そこで、シフトレジスタ回路Q2のイネーブル端子(/G)への入力を、シフトレジスタ回路Q1のイネーブル端子(/G)への入力より、4.8μsecより長い、例えば、6.8μsec遅らせてHIGH電位とすることで、ドライバ回路P1に残っている電荷を十分に放電し、データ信号とコモン信号の出力タイミングの重複を回避する。
【0077】
また、シフトレジスタ回路Q2のイネーブル端子(/G)への制限入力終了を、シフトレジスタ回路Q1のイネーブル端子(/G)への制限入力終了より早めているのは以下の理由による。すなわち、コモン信号を先に有効にすることで、仮に、データ信号やコモン信号の回路に電荷が残っていたとしても、速やかに放電して、本来のデータ信号への切り換えをスムーズに行うことが可能となる。
【0078】
図8、
図9の例においては、データ信号およびコモン信号が同時に無効となる期間(全消灯期間)が生じ、その間は、集合発光体L1~L5全てが消灯することとなる。しかし、1の集合発光体に費やす周期(例えば、1.49msec)に対し、当該全消灯期間は16μsec程度である。すなわち、1の集合発光体に費やす周期に対して、点灯時間が1474/1490になるだけである。したがって、集合発光体L1~L5の輝度への影響は限定的となる。また、集合発光体L1~L5について、
図4と同様の輝度を維持する場合、集合発光体L1~L5に流す電流が1490/1474となるように、集合抵抗R1を調整すれば足りる。
【0079】
なお、ここでは、全消灯期間において、シフトレジスタ回路Q1のデータ信号の出力およびシフトレジスタ回路Q2のコモン信号の出力のいずれも無効化する例を挙げて説明したが、かかる場合に限らず、シフトレジスタ回路Q1のデータ信号の出力のみを無効化したり、シフトレジスタ回路Q2のコモン信号の出力のみを無効化しても、データ信号とコモン信号との出力タイミングの重複を回避できるので、ゴースト現象の発生を抑制することが可能となる。
【0080】
また、ここでは、発光する集合発光体を切り換える所定周期(例えば、1.49msec)において、その開始後(切り換え直後)に全消灯期間を設ける例を挙げて説明したが、かかる場合に限らず、その終了前(切り換え直前)に全消灯期間を設けるとしてもよい。かかる場合もデータ信号とコモン信号との出力タイミングの重複を回避できるので、ゴースト現象の発生を抑制することが可能となる。
【0081】
このように、遊技機100では、それぞれ複数のLEDを有する複数の集合発光体(例えば、集合発光体L1~L5)と、複数の集合発光体に接続され、複数の集合発光体それぞれの発光内容(例えば、「1」、「2」、「3」、「4」)を示すデータ信号(例えば、「06h」、「5Bh」、「4Fh」、「66h」、「15h」)を所定の周期(例えば、1.49msec)で切り換えて出力するデータ出力回路(例えば、シフトレジスタ回路Q1)と、複数の集合発光体に接続され、発光させる集合発光体を特定するコモン信号を所定の周期で切り換えて出力するコモン出力回路(例えば、シフトレジスタ回路Q2)と、所定の周期のうち開始後または終了前の所定時間(例えば、全消灯期間)において、データ出力回路のデータ信号の出力、および、コモン出力回路のコモン信号の出力のいずれか一方または双方を無効化(LEDに電流を流さないように)する無効回路(例えば、パルス発生回路Q3、Q4、遅延回路Q5)と、を備えている。
【0082】
なお、ここでは、データ信号を出力するデータ出力回路として、シフトレジスタ回路Q1を挙げ、コモン信号を出力するコモン出力回路としてシフトレジスタ回路Q2を挙げて説明したが、かかる場合に限らず、シフトレジスタ回路Q1、Q2のイネーブル端子(/G)のように、その出力を無効化(例えば、ハイインピーダンス化)できれば足り、例えば、パラレル信号をラッチするラッチ回路等を用いることもできる。
【0083】
また、ここでは、
図7のように、主制御基板300において、メインCPU300aとともに、シフトレジスタ回路Q1、Q2、パルス発生回路Q3、Q4、遅延回路Q5、ドライバ回路P1、P2、集合抵抗R1~R3を配する例を挙げて説明したが、シフトレジスタ回路Q1、Q2、パルス発生回路Q3、Q4、遅延回路Q5、ドライバ回路P1、P2、集合抵抗R1~R3を別体の基板に配し、かかる別体の基板のコネクタと、主制御基板300のコネクタとが、直接、または、ハーネスを介して接続されているとしてもよい。また、シフトレジスタ回路Q1、Q2、パルス発生回路Q3、Q4、遅延回路Q5、ドライバ回路P1、P2、集合抵抗R1~R3を発光基板322に配し、主制御基板300のメインCPU300aと接続するとしてもよい。
【0084】
(副制御基板330の回路構成)
上述したように、副制御基板330において、サブCPU330aは、主制御基板300から送信されたコマンドやタイマからの入力信号等に基づいて、サブROM330bに格納されたプログラムを読み出して演算処理を行うとともに、演出を実行制御する。具体的には、副制御基板330は、上記演出表示部200aに画像を表示させる画像表示制御を行う。サブROM330bには、演出表示部200aに表示される図柄や背景等の画像データが多数格納されており、サブCPU330aが、画像データをサブROM330bから不図示のVRAMに読み出して、演出表示部200aの画像表示を制御する。また、副制御基板330は、演出役物装置202を駆動制御したり、演出照明装置204を点灯制御したり、楽曲出力装置206から楽曲を出力させる楽曲出力制御を行う。
【0085】
図10は、副制御基板330における、演出表示部200a、演出役物装置202、演出照明装置204、楽曲出力装置206の制御態様を説明するためのブロック図であり、
図11は、それらに共通する制御態様を示すフローチャートである。副制御基板330に設けられたサブCPU(CPU)330aは、サブROM330bに格納されたプログラムおよびサブRAM330cと協働して、演出決定手段332、演出実行手段334として機能する。演出決定手段332は、状態管理を行い、主制御基板300から送信されたコマンドを解析し、そのコマンドに対応する変動演出等の演出パターン(演出の一連の流れを示す内容)を決定するとともに、デバイス(演出表示部200a、演出役物装置202、演出照明装置204、楽曲出力装置206)毎にメッセージを生成して、オペレーションバッファに追加する。ここで、メッセージには、デバイスへの出力タイミング、および、各デバイスの動作パターンが示されている。そして、演出実行手段334は、オペレーションバッファに蓄積された各メッセージを解析し、メッセージに含まれる出力タイミングに応じて、画像IC340a、コントローラ342、楽曲IC346a等の各デバイスにコマンドを送信する。かかる演出決定手段332および演出実行手段334は、いずれも割込に応じた処理(割込処理)であり、デバイスそれぞれに対応付けられた割込タイミングで実行される。
【0086】
例えば、演出決定手段332は、
図11に示すように、所定の割込周期(例えば33.3msec)の到来を待ち(S10におけるNO)、所定の割込周期が到来すると(S10におけるYES)、演出パターンに基づいた画像パターン(演出パターンが示す演出のうち、演出表示部200aに表示する画像に相当する内容)を決定する(S11)。そして、演出決定手段332は、決定された画像パターンとその出力タイミングをメッセージとしてオペレーションバッファに送信する(S12)。演出実行手段334は、オペレーションバッファに蓄積された画像パターンに基づいて画像データを特定可能な画像コマンドを生成する(S13)。演出実行手段334は、画像IC340aに対して、画像コマンドを送信し(S14)、ステップS10からの処理を繰り返す。画像IC340aは、VDP(Video Display Processor)とも呼ばれ、画像コマンドによって特定される画像データを画像ROM340bから画像RAM(VRAM)340cに読み出し、画像データを、順次、演出表示部200aに出力する。なお、演出表示部200aには、常に、何かしらの画像が表示される。したがって、演出決定手段332は、割込周期毎に、常に、画像データを決定していることとなる。なお、画像RAM340cは、それぞれ異なるレイヤを有し、各レイヤに異なる画像データを保持させることができる。そして、画像IC340aは、複数のレイヤに保持された画像データを重畳し、その重畳された画像データが演出表示部200aに出力される。なお、ここでは、画像IC340a、画像ROM340b、画像RAM340cが別体で表されているが、いずれか2つの装置または全ての装置が一体的に構成されているとしてもよく、また、いずれか2つの装置または全ての装置がサブCPU330aと一体的に構成されてもよい。
【0087】
また、演出決定手段332は、上記の画像IC340aに対する制御と並行して、演出パターンの決定に伴い、所定の割込周期(例えば2msec)が到来すると(S10におけるYES)、演出パターンに基づいた役物パターン(演出パターンが示す演出のうち、演出役物装置202の一連の動作を示す内容)を決定する(S11)。そして、演出決定手段332は、決定された役物パターンとその出力タイミングをメッセージとしてオペレーションバッファに送信する(S12)。演出実行手段334は、オペレーションバッファに蓄積された役物パターンに基づいて、進行方向(回転方向)、進行量(回転量)、進行速度(回転速度)の少なくともいずれかを示す役物コマンドを生成する(S13)。演出実行手段334は、その役物パターンに従って、コントローラ342に所定時間間隔で、役物コマンドを送信し(S14)、ステップS10からの処理を繰り返す。コントローラ342は、かかる役物コマンドに従い、演出役物装置202を駆動する。ここで、演出役物装置202は、役物パターンが決定されたときのみ動作している。
【0088】
また、演出決定手段332は、演出パターンの決定に伴い、所定の割込周期(例えば33msec)が到来すると(S10におけるYES)、演出パターンに基づいた照明パターン(演出パターンが示す演出のうち、演出照明装置204の一連の照明態様(発光態様)を示す内容)を決定する(S11)。そして、演出決定手段332は、決定された照明パターンとその出力タイミングをメッセージとしてオペレーションバッファに送信する(S12)。演出実行手段334は、オペレーションバッファに蓄積されたメッセージ(照明パターン)に基づいて、演出照明装置204の照明態様(例えば、点灯有無や輝度)を示す照明コマンドを生成する(S13)。演出実行手段334は、その照明パターンに従って、役物パターン同様、コントローラ342に所定時間間隔で照明コマンドを送信し(S14)、ステップS10からの処理を繰り返す。コントローラ342は、かかる照明コマンドに従い、演出照明装置204を発光させる。こうして、演出照明装置204であるランプが点灯制御される。なお、演出照明装置204は、常に、点灯または消灯を繰り返している。したがって、演出決定手段332は、割込周期毎に、常に、演出パターンを決定していることとなる。
【0089】
また、演出決定手段332は、上記の画像IC340a、コントローラ342に対する制御と並行して、演出パターンの決定に伴い、所定の割込周期(例えば50msec)が到来すると(S10におけるYES)、演出パターンに基づいた楽曲パターン(演出パターンが示す演出のうち、楽曲出力装置206に出力する楽曲に相当する内容)を決定する(S11)。そして、演出決定手段332は、決定された楽曲パターンとその出力タイミングをメッセージとしてオペレーションバッファに送信する(S12)。演出実行手段334は、オペレーションバッファに蓄積された楽曲パターンに基づいて、楽曲データを特定可能な楽曲コマンドを生成する(S13)。演出実行手段334は、楽曲IC346aに対して、楽曲コマンドを送信し(S14)、ステップS10からの処理を繰り返す。楽曲IC346aは、楽曲コマンドによって特定される楽曲データを楽曲ROM346bから楽曲IC346aに読み出し、楽曲データを、順次、楽曲出力装置206に出力する。なお、ここでは、楽曲IC346a、楽曲ROM346bが別体で表されているが、両者が一体的に構成されているとしてもよく、また、両者がサブCPU330aと一体的に構成されてもよい。
【0090】
なお、楽曲出力装置206には、アンプ206aおよびスピーカ206bが含まれる。アンプ206aは、楽曲IC346aから入力した楽曲データ(楽曲信号)を増幅してアナログ信号を出力する。スピーカ206bは、増幅されたアナログ信号から物理的振動を生成して音(楽曲)を出力する。また、サブCPU330aは、I2C(Inter-Integrated Circuit)通信を通じてアンプ206aにコマンドを送信し、アンプ206aの増幅量、すなわち、スピーカ206bから出力される音の音量を制御することができる。なお、楽曲出力装置206には、常に、何かしらの楽曲が出力されている。したがって、演出決定手段332は、割込周期毎に、常に、楽曲データを決定していることとなる。なお、楽曲IC346aは、複数の楽曲バッファ(バッファ)を有し、各楽曲バッファに異なる楽曲データを保持させることができる。そして、楽曲IC346aは、複数の楽曲バッファに保持された楽曲データを重畳し、その重畳された楽曲データが楽曲出力装置206に出力される。
【0091】
ここで楽曲出力装置206のアンプ206aの音量制御に用いられているI2C通信は、1のマスタ装置(ここではサブCPU330a)と、複数のスレーブ装置(例えば、アンプ206a等)とが、クロック信号線とデータ信号線の2本の線によって並列接続(パーティーライン接続、スター結線)されている近距離のシリアル通信回線である。ここで、並列接続は、マスタ装置および複数のスレーブ装置それぞれが1のシリアル通信回線であるI2C通信回線に接続され、マスタ装置が複数のスレーブ装置それぞれと、直接、通信することが可能な接続を示す。I2C通信では、マスタ装置が常に通信の制御権を有している。具体的に、まず、マスタ装置が、クロックに基づいて、Start Condition、アドレス、Read/Write要求の順にデータを出力し、アドレスが一致したスレーブ装置だけがその後の送受信を継続することができる。そして、マスタ装置がStop Conditionを出力すると送受信が終了する。マスタ装置は、Start ConditionからStop Conditionまでの間、1のスレーブ装置とのみ通信を行い、他のスレーブ装置との通信要求を受け付けない(通信を行わない)。なお、マスタ装置は、1のスレーブ装置との通信完了後に、他のスレーブ装置との通信を行うことができる。
【0092】
図10において、サブCPU330aに接続されたI2C通信のクロック信号線とデータ信号線には、複数のスレーブ装置、例えば、アンプ206aやRTC(Real Time Clock)348が接続されている。ここで、サブCPU330aは、楽曲データの音量を指示する場合、アンプ206aのアドレスを送信してから、アンプ206aに音量を示す音量情報を送信する。また、サブCPU330aは、現在の時刻を読み出す場合、RTC348のアドレスを送信し、RTC348から現在の時刻を示す時刻情報を受信する。
【0093】
なお、RTC348は、任意のクロックに基づいて時刻および年月日等のデジタルデータを生成する集積回路(電気素子)である。RTC348は、サブCPU330aの電源と独立した電源を有し、サブCPU330aの電源が切断されたとしても、時刻および年月日を継続して更新し続けることができる。したがって、RTC348は、初期化において設定された時刻から計時を続け、サブCPU330aは、その計時された時刻を用いて、演出等の他の処理を行うことができる。
【0094】
さらに、副制御基板330には、演出操作装置208が押下操作されたことを検出する押下検出スイッチ208s、および、演出操作装置208が回転操作されたことを検出する回転検出スイッチ209sから検出信号が入力される。コントローラ342は、演出操作装置208(押下検出スイッチ208sや回転検出スイッチ209s)から検出信号が入力されると、その旨、演出決定手段332に伝達し、演出決定手段332は、かかる検出信号の入力に応じて、演出表示部200aに画像を表示する等、さまざまな演出を決定する。
【0095】
ここでは、サブCPU330a、サブRAM330c、画像IC340a、画像ROM340b、画像RAM340c、コントローラ342、楽曲IC346a、楽曲ROM346b等の一連の機能部が、SoC(System-on-a-Chip)として1個の集積回路に集積されている。ただし、かかるSoCにいずれの機能部を集積するかは任意に設定することができる。また、サブCPU330a、サブRAM330c、画像IC340a、画像ROM340b、画像RAM340c、コントローラ342、楽曲IC346a、楽曲ROM346b等の各機能部がそれぞれ異なる集積回路として集積され、電気的に接続されているとしてもよい。
【0096】
なお、各基板には、不図示の電源基板が接続されており、電源基板を介して商用電源から各基板に電力供給がなされている。
【0097】
<演出照明装置204の制御>
上述したように、演出決定手段332は、演出パターンを決定し、演出パターンに基づいた照明パターンを決定し、オペレーションバッファに送信する。そして、演出実行手段334は、オペレーションバッファに蓄積されたメッセージに基づいて、演出照明装置204の照明態様を示す照明コマンドを生成し、コントローラ342に送信する。ここでは、メッセージとして、演出照明装置204の照明パターンを示すコマンド群であるテーブルが用いられる。
【0098】
図12は、テーブルに用いられるコマンドの一例を示す図である。
図12に示すように、コマンド「PUT」は、設定された継続時間に亘って、設定された輝度を継続させる命令である。コマンド「SETUP」は、設定された輝度で発光させる命令である。コマンド「SLINE」は、設定された継続時間をかけて等間隔で、開始時の輝度から、設定された輝度に変化させる命令である。コマンド「WAIT」は、設定された継続時間に亘って、設定された輝度を維持させる命令である。コマンド「LOOP」は、コマンド「NEXT」までのコマンドを、設定された繰り返し回数だけ繰り返し行う命令である。コマンド「NEXT」は、コマンド「LOOP」に対する終端を示す命令である。コマンド「JUMP」は、指定されたアドレス(テーブル)に解析先を飛ばし、解析先が元のアドレスに戻らない命令である。コマンド「CALL」は、指定されたアドレス(テーブル)に解析先を飛ばし、解析先が元のアドレスの次のアドレスに戻る命令である。なお、上記のコマンドのうち、コマンド「PUT」、コマンド「SETUP」、コマンド「SLINE」、コマンド「WAIT」、コマンド「LOOP」、コマンド「NEXT」は、2バイトの基本コマンドのみで構成され、コマンド「JUMP」およびコマンド「CALL」は、基本コマンドおよび拡張コマンドの6バイトで構成されている。
【0099】
図13は、テーブルの一例を示す図である。
図13(a)に示すように、当該テーブルは、10行で示した、コマンド「LOOP」、コマンド「SLINE」、コマンド「SLINE」、コマンド「LOOP」、コマンド「SLINE」、コマンド「WAIT」、コマンド「SLINE」、コマンド「NEXT」、コマンド「NEXT」、コマンド「END」の10個のコマンドで構成される。
【0100】
図13(a)のテーブルは、演出実行手段334によって、
図13(b)に示したフローチャートに従って動作する。すなわち、1行目のコマンド「LOOP」(外側)は、9行目のコマンド「NEXT」(外側)に囲まれた複数のコマンドを繰り返し実行する。コマンド「SLINE」には、最終的な輝度が5ビット(「00h」~「1Fh」の32段階)で設定され、継続時間が6ビット(「02h」~「3Fh」の62段階、割込周期が33.33msであれば、66.67ms~2010.00ms)で設定されている。例えば、2行目のコマンド「SLINE」は、開始時の輝度(例えば0)から最終的な輝度(例えば31(1FH))に継続時間2秒をかけて線形変化させる。3行目のコマンド「SLINE」は、開始時の輝度(例えば31)から最終的な輝度(例えば0)に継続時間2秒をかけて線形変化させる。4行目のコマンド「LOOP」(内側)は、8行目のコマンド「NEXT」(内側)に囲まれた複数のコマンドを繰り返し実行する。5行目のコマンド「SLINE」は、開始時の輝度(例えば0)から最終的な輝度(例えば31)に継続時間2秒をかけて線形変化させる。6行目のコマンド「WAIT」は、開始時の輝度(例えば31)を継続時間1秒維持させる。7行目のコマンド「SLINE」は、開始時の輝度(例えば31)から最終的な輝度(例えば0)に継続時間2秒をかけて線形変化させる。全ての繰り返し処理が終了すると、10行目のコマンド「END」により、当該テーブルの処理が終了する。
【0101】
演出照明装置204が、例えば、3色(RGB)のLEDからなる場合、3色のLEDそれぞれに対してテーブルが設定される。演出実行手段334は、オペレーションバッファから各テーブルを参照し、各テーブルを解析して、演出照明装置204で発光すべき照明態様(例えば、輝度)を特定して照明コマンドを生成する。
【0102】
例えば、演出実行手段334は、所定の割込周期(例えば33msec)毎に、テーブルを解析し、テーブルにおける解析の対象となるコマンド、そのコマンドの実行時間(実行開始からの経過時間)を参照して実行時間に応じた輝度を特定する。例えば、演出実行手段334は、
図13(a)に示したテーブルを解析し、解析の対象となるコマンドが、輝度0から輝度31に継続時間2秒をかけて線形変化させる2行目のコマンド「SLINE」であり、コマンド「SLINE」の実行時間が1秒であれば、輝度は中間値の15となる。また、解析の対象となるコマンドが、開始時の輝度(例えば31)を継続時間1秒維持させる6行目のコマンド「WAIT」であり、コマンド「WAIT」の実行時間が0.5秒であれば、輝度は31となる。
【0103】
このように、照明パターンにおいて輝度は経過時間に応じて時々刻々と変化している。したがって、演出実行手段334は、テーブルを解析し、解析の対象となるコマンド、そのコマンドの実行時間を認識していないと輝度を特定することができない。このため、演出実行手段334は、前回解析された結果(輝度生成情報)、例えば、解析の対象となるコマンドと、そのコマンドの実行時間とに基づいて今回の解析を行っている。換言すれば、演出実行手段334は、前回の解析結果が保持されていないと、今回の解析を行うことができない。このように所定のテーブルに対応する輝度を継続して特定するため、演出実行手段334は、所定の割込周期毎に、必ず、テーブルの解析を行って解析結果を導出しなくてはならない。
【0104】
演出実行手段334は、このようにして輝度が特定されると、対象となる演出照明装置204の識別子と輝度とを関連付けて照明コマンドを生成し、コントローラ342に送信する。なお、実際は、演出実行手段334は、DMA(Direct Memory Access)コントローラを通じて照明コマンドをコントローラ342へ送信する。したがって、演出実行手段334は、照明コマンドの送信をDMAコントローラに設定した後は、送信処理に携わることなく、送信処理以外の処理を実行できる。
【0105】
また、本実施形態では、演出決定手段332が演出パターンを複数並行して決定する場合がある。例えば、第1始動口120または第2始動口122に遊技球が入球したことに基づいて、大役抽選結果が遊技者に報知される変動演出が行われている間に、遊技者によって演出操作装置208が押下操作され、その操作に基づいて演出が実行される場合である。この場合、複数の演出パターンが並行して決定され、その演出パターンに基づいて、複数の照明パターンも並行して決定される。
【0106】
このような照明パターンを複数並行して管理するため、本実施形態では、積層構造(以下、レイヤと言う)を採用している。オペレーションバッファは、複数の異なるレイヤを有し、レイヤ単位で、テーブル、および、テーブルの解析結果である輝度生成情報を対応付けることができる。なお、異なるレイヤそれぞれには同タイミングで異なるテーブルを割り当てることはできるが、同一のレイヤには異なるテーブルを重ねて割り当てることはできない。
【0107】
なお、各レイヤには優先順位が設けられており、優先順位が高いレイヤに割り当てられたテーブルと、優先順位が低いレイヤに割り当てられたテーブルとが同タイミングで実行された場合、いずれも解析はされるものの、優先順位が高いレイヤに割り当てられたテーブルの解析結果が、優先順位が低いレイヤに割り当てられたテーブルの解析結果より優先して用いられ、優先順位が高いレイヤに割り当てられたテーブルによって特定された輝度のみが照明コマンドとしてコントローラ342に送信される。したがって、遊技者は、優先順位が高いレイヤに割り当てられたテーブルによって特定された輝度で発光する演出照明装置204を視認することとなる。なお、レイヤに割り当てられたテーブルの優先順位は、レイヤの優先順位と等しくなるので、レイヤの優先順位=レイヤに割り当てられたテーブルの優先順位と考えることができる。また、同様に、レイヤに割り当てられたテーブルを解析することは、レイヤを解析することと同義なので、レイヤの解析=レイヤに割り当てられたテーブルの解析と考えることができる。
【0108】
図14は、積層構造を説明するためのタイミングチャートである。
図14では、説明の便宜上、2つのレイヤを挙げて説明する。ただし、レイヤ数は、2に限らず、3以上設定されていてもよい。なお、
図14では、レイヤ1の方がレイヤ2より優先順位が高いとする。
【0109】
例えば、演出決定手段332は、時点T0において、所定の照明パターン1に基づき、レイヤ1に、輝度0から輝度31に継続時間3秒をかけて線形変化させるコマンド「SLINE」で構成されたテーブル1を割り当てたとする。また、演出決定手段332は、同時点T0において、照明パターン1と異なる所定の照明パターン2に基づき、レイヤ2に、輝度31で発光させるコマンド「SETUP」と、継続時間5秒に亘って開始時の輝度を維持させるコマンド「WAIT」とで構成されたテーブル2を割り当てたとする。
【0110】
そうすると、時点T0から3秒後の時点T1まで、レイヤ1、2にそれぞれテーブル1、2が割り当てられた状態となり、時点T1から2秒後の時点T2までレイヤ2にテーブル2が割り当てられた状態となる。この場合、演出実行手段334は、時点T0から3秒後の時点T1まで、レイヤ1に割り当てられたテーブル1およびレイヤ2に割り当てられたテーブル2を解析しつつ、レイヤ1に割り当てられたテーブル1の解析結果を、レイヤ2に割り当てられたテーブル2の解析結果より優先して用い、レイヤ1に割り当てられたテーブル1によって特定された輝度のみを照明コマンドとしてコントローラ342に送信する。また、演出実行手段334は、時点T1から2秒後の時点T2まで、レイヤ2に割り当てられたテーブル2を解析しつつ、レイヤ2に割り当てられたテーブル2によって特定された輝度のみを照明コマンドとしてコントローラ342に送信する。こうして、遊技者は、3秒間に亘って徐々に高まった輝度が2秒間維持される演出照明装置204を視認することとなる。
【0111】
ここで、時点T0から3秒後の時点T1までの演出実行手段334の処理に着目する。ここでは、レイヤ1、2にそれぞれテーブル1、2が割り当てられており、かつ、レイヤ1の方がレイヤ2より優先順位が高く設定されている。そうすると、優先順位が高いレイヤ1に割り当てられたテーブル1によって特定された輝度のみを要するならば、レイヤ1に割り当てられたテーブル1のみを解析すれば足りるのではないかと考え得る。しかし、上述したように、演出実行手段334は、前回の解析結果が保持されていないと、今回の解析を行うことができず、所定のテーブルに対応する輝度を継続して特定するためには、所定の割込周期毎に、必ず、テーブルの解析を行って解析結果を導出しなければならない。例えば、
図14の例では、レイヤ2に割り当てられたテーブル2の解析結果は、時点T0から時点T1まで照明コマンドに反映されないが、時点T1以降においては反映されなければならず、その解析結果を得るために、演出実行手段334は、時点T0から時点T1の間も、レイヤ2に割り当てられたテーブル2を解析し続ける必要がある。
【0112】
具体的に、演出実行手段334は、テーブルを解析し、その結果を輝度生成情報としてレイヤに対応付けて保持する。輝度生成情報には、テーブルの識別子(例えば、テーブルのアドレス)、解析の対象となるコマンド(またはそのアドレス)、繰り返しや呼び出しがある場合のコマンド(またはそのアドレス)、繰り返しや呼び出しの回数、解析の対象となるコマンドの実行時間(実行開始からの経過時間)、前回輝度値、輝度変化値等が含まれる。
【0113】
例えば、演出実行手段334は、時点T0から3秒後の時点T1まで、テーブル1に基づいて輝度0から輝度31に継続時間3秒をかけて線形変化させるコマンド「SLINE」が実行されていることを特定し、そのコマンド「SLINE」の実行時間が3秒に到達するまで、輝度生成情報としての前回輝度値(例えば、15)に、輝度生成情報としての輝度変化値(例えば、0.36=32×33msec/3秒)を加算して、今回の輝度値(ここでは、15.36)を特定する。なお、ここでは、説明の便宜上、前回輝度値や輝度変化値として実数を用いているが、実際は、定数倍され、整数で表されている。このとき、演出実行手段334は、今回の輝度値を処理した後、次回の解析のため、今回の輝度値を前回輝度値に上書きする。
【0114】
また、演出実行手段334は、時点T1において、テーブル1に基づく照明パターンが終了したことを把握し、時点T1から2秒後の時点T2まで、テーブル2に基づいて開始時の輝度を維持させるコマンド「WAIT」が実行されていることを特定し、そのコマンド「WAIT」の実行時間が5秒に到達するまで、前回輝度値(例えば、31)をそのまま用いて、今回の輝度値(ここでは、31)を特定する。このとき、演出実行手段334は、今回の輝度値を処理した後、次回の解析のため、今回の輝度値を前回輝度値に上書きする。
【0115】
ここで、演出実行手段334が、時点T0から時点T1までレイヤ1しか解析しないとなると、時点T1においてレイヤ2に割り当てられたテーブル2の輝度生成情報が生成されないこととなり、時点T1からテーブル2に基づいて輝度を特定できなくなってしまう。したがって、演出実行手段334は、所定の割込周期(例えば33msec)毎に、レイヤの優先順位に拘わらず、少なくとも、テーブルが有効に割り当てられている全てのレイヤについて解析を行い、それぞれの輝度生成情報を生成している。
【0116】
図15は、演出実行手段334の処理例を示したタイミングチャートである。ここでは、
図14における時点T0から時点T1までの任意の時点T3(例えば、時点T0から1.5秒後)における演出実行手段334の処理例を説明する。かかる処理は、所定の割込周期(例えば33msec)毎に行われ、割込周期内に完了する。
【0117】
時点T3において、まず、演出実行手段334は、解析対象をレイヤ1とし、レイヤ1の輝度生成情報を参照し、輝度生成情報におけるテーブルの識別子からテーブル1を特定する。また、演出実行手段334は、解析の対象となるコマンドがコマンド「SLINE」であることに基づいて、前回輝度値である「15」と、輝度変化値である「0.36」とを加算し、今回の輝度値「15.36」を特定する。また、演出実行手段334は、次回の解析のため、今回の輝度値「15.36」を、レイヤ1の輝度生成情報における前回輝度値に上書きする。
【0118】
次に、演出実行手段334は、解析対象をレイヤ2とし、レイヤ2の輝度生成情報を参照し、輝度生成情報におけるテーブルの識別子からテーブル2を特定する。また、演出実行手段334は、解析の対象となるコマンドがコマンド「WAIT」であることに基づいて、前回輝度値である「31」をそのまま用いて今回の輝度値「31」を特定する。また、演出実行手段334は、次回の解析のため、今回の輝度値「31」を、レイヤ2の輝度生成情報における前回輝度値に上書きする。
【0119】
続いて、演出実行手段334は、各レイヤの優先順位に基づいて、演出照明装置204に送信すべき輝度値を特定する。ここで、演出実行手段334は、優先順位が高い順にレイヤにテーブルが有効に割り当てられているか判定し、テーブルが有効に割り当てられているレイヤ(例えば、レイヤ1、レイヤ2)の中で、優先順位が最も高いレイヤ(ここでは、レイヤ1)を特定する。そして、演出実行手段334は、そのレイヤ1に割り当てられたテーブル1に基づいて特定された輝度(例えば前回輝度値「15.36」)を照明コマンドとしてコントローラ342に送信する。
【0120】
具体的に、演出実行手段334は、
図15に示すように、照明コマンドの送信をDMAコントローラに設定することで、照明コマンドの送信が開始され、その後、DMAコントローラが演出実行手段334とは独立して、照明コマンドをコントローラ342に送信する。このように、演出実行手段334は、照明コマンドの実際の送信処理を、自己と独立して動作可能なDMAコントローラに移行させることで、その後すぐに、他の処理、例えば、他の演出照明装置204に対する処理を実行することが可能となる。こうして、複数のレイヤを設けた場合においても、優先順位の高いレイヤに割り当てられたテーブルに基づいて、適切に照明コマンドが送信される。
【0121】
なお、
図15では、演出実行手段334は、まず、レイヤ1に割り当てられたテーブル1を解析し、次に、レイヤ2に割り当てられたテーブル2を解析する例を挙げて説明したが、かかる場合に限らず、優先順位に拘わらず、任意のレイヤに割り当てられたテーブルから解析することができる。
【0122】
しかし、レイヤが複数あり、
図15のように、有効にテーブルが割り当てられた全てのレイヤについて解析が終了してから送信を開始するとなると、レイヤの数によっては、照明コマンドの送信開始が遅れてしまい、演出照明装置204への輝度の反映が遅延するおそれがある。例えば、演出照明装置204の照明パターンの切り換えが、演出表示部200aに表示される画像パターンや楽曲出力装置206に出力される楽曲パターンの切り換えより遅延すると、遊技者が違和感を覚えてしまう。
【0123】
上述したように、演出実行手段334は、前回解析された結果に基づいて今回の解析を行っており、前回の解析結果(輝度生成情報)が保持されていないと、今回の解析結果を導出できない。しかし、演出照明装置204の輝度の特定だけであれば、優先順位が最も高いレイヤに割り当てられたテーブルを解析しさえすれば可能となる。そこで、演出実行手段334は、優先順位が最も高いレイヤに割り当てられたテーブルを先に解析して、演出照明装置204の輝度を特定し、迅速に照明コマンドを送信する。一方、残りのレイヤに割り当てられたテーブルの解析処理は照明コマンドの送信設定終了後に行う。
【0124】
図16は、演出実行手段334の他の処理例を示したタイミングチャートである。ここでは、
図14における時点T0から時点T1までの任意の時点T3(例えば、時点T0から1.5秒後)における演出実行手段334の処理例を説明する。かかる処理も、
図15同様、所定の割込周期(例えば33msec)毎に行われ、割込周期内に完了する。
【0125】
時点T3において、まず、演出実行手段334は、各レイヤの優先順位に基づいて、最初に解析すべきレイヤを特定する。具体的に、演出実行手段334は、優先順位が高い順にレイヤにテーブルが有効に割り当てられているか判定し、テーブルが有効に割り当てられているレイヤ(例えば、レイヤ1、レイヤ2)の中で、優先順位が最も高いレイヤ(ここでは、レイヤ1)を特定する。
【0126】
そして、演出実行手段334は、優先順位が高いと判定したレイヤ1を解析対象とし、レイヤ1の輝度生成情報を参照し、輝度生成情報におけるテーブルの識別子からテーブル1を特定する。また、演出実行手段334は、解析の対象となるコマンドがコマンド「SLINE」であることに基づいて、前回輝度値である「15」と、輝度変化値である「0.36」とを加算し、今回の輝度値「15.36」を特定する。また、演出実行手段334は、次回の解析のため、今回の輝度値「15.36」を、レイヤ1の輝度生成情報における前回輝度値に上書きする。
【0127】
次に、演出実行手段334は、そのレイヤ1に割り当てられたテーブル1に基づいて特定された輝度(例えば前回輝度値「15.36」)を照明コマンドとしてコントローラ342に送信する。具体的に、演出実行手段334は、
図16に示すように、照明コマンドの送信をDMAコントローラに設定し、その後、DMAコントローラが演出実行手段334とは独立して、照明コマンドをコントローラ342に送信する。このように、演出実行手段334は、照明コマンドの実際の送信処理を、自己と独立して動作可能なDMAコントローラに移行させることで、その後すぐに、他の処理、例えば、他のレイヤに対する処理を実行することが可能となる。
【0128】
そして、演出実行手段334は、送信処理がDMAコントローラに移行された後、解析対象をレイヤ2とし、レイヤ2の輝度生成情報を参照し、輝度生成情報におけるテーブルの識別子からテーブル2を特定する。また、演出実行手段334は、解析の対象となるコマンドがコマンド「WAIT」であることに基づいて、前回輝度値である「31」をそのまま用いて今回の輝度値「31」を特定する。また、演出実行手段334は、次回の解析のため、今回の輝度値「31」を、レイヤ2の輝度生成情報における前回輝度値に上書きする。
【0129】
こうして、複数のレイヤを設けた場合においても、優先順位の高いレイヤに割り当てられたテーブルに基づいて、照明コマンドを適切かつ迅速に送信することができる。したがって、演出照明装置204の照明パターンが、演出表示部200aに表示される画像パターンや楽曲出力装置206に出力される楽曲パターンから遅延することなく、遊技者が違和感を覚えることもない。
【0130】
ここでは、優先順位が最も高いレイヤ以外のレイヤに割り当てられたテーブルを、照明コマンドを送信した後に解析しているが、全て、所定の割込周期(例えば33msec)内に並行して行われる処理なので、テーブルの解析順が輝度の発光タイミングに影響を及ぼすことはない。
【0131】
また、例えば、
図16の時点T1、すなわち、レイヤ1に割り当てられたテーブルの解析処理が終了した場合であっても、テーブルが有効に割り当てられたレイヤのうち、優先順位が最も高いレイヤ、ここでは、レイヤ2について、最優先で解析されるので、時点T3同様、照明コマンドが適切かつ迅速に送信される。
【0132】
なお、ここでは、説明の便宜上、2つのレイヤ(レイヤ1、レイヤ2)を挙げ、そのうち最も優先順位の高いレイヤ(例えば、レイヤ1)の解析を先に行い、次に優先順位の高いレイヤ(例えば、レイヤ2)の解析を照明コマンドの送信設定の後に実行する例を挙げて説明した。しかし、かかる場合に限らず、レイヤが3以上ある場合、3以上のレイヤのうち最も優先順位の高いレイヤの解析を先に行い、それ以外のレイヤの解析を、照明コマンドの送信設定の後に、任意の順で実行するとしてもよい。これは、演出照明装置204で出力できる輝度は1つであり、優先順位が最も高いレイヤにおける輝度さえ送信できれば、他のレイヤの解析順は当該演出照明装置204の制御に影響を及ぼさないからである。
【0133】
また、ここでは、説明の便宜上、1の演出照明装置204について、最も優先順位の高いレイヤ(例えば、レイヤ1)の解析を先に行い、次に優先順位の高いレイヤ(例えば、レイヤ2)の解析を照明コマンドの送信設定の後に実行する例を挙げて説明した。しかし、かかる場合に限らず、複数の演出照明装置204それぞれについて一度に照明パターンが決まった場合、複数の演出照明装置204それぞれにおける最も優先順位の高いレイヤの解析を先に行い、特定された輝度を送信し、その後、複数の演出照明装置204それぞれにおける最も優先順位の高いレイヤ以外のレイヤの解析を実行するとしてもよい。
【0134】
このように、遊技機100では、照明パターンを示すコマンドモジュール(例えば、テーブル)を決定する演出決定手段332と、コマンドモジュールに基づいてコマンドモジュールに対応する照明態様(例えば、輝度生成情報)を更新する演出実行手段334と、更新された照明態様に基づいて(輝度生成情報のうちの輝度を用いて)発光する演出照明装置204と、を備え、コマンドモジュールには優先順位が対応付けられており、演出実行手段334は、並行して処理すべきコマンドモジュールが複数ある場合、優先順位が最も高いコマンドモジュールに対応する照明態様を更新し、優先順位が最も高いコマンドモジュールに基づいて更新された照明態様を演出照明装置に送信し、並行して処理すべき複数のコマンドモジュールのうち、優先順位が最も高いコマンドモジュール以外のコマンドモジュールに対応する照明態様を更新する。
【0135】
なお、ここでは、コマンドモジュールとして、照明パターンを示すコマンド群であるテーブルを挙げて説明したが、かかる場合に限らず、演出照明装置204の照明態様の時系列変化を表すことができれば足り、例えば、プログラミング言語によるプログラムや、実行時間と照明態様との組み合わせが羅列されたリスト等を採用することもできる。
【0136】
また、ここでは、照明態様として、輝度生成情報を挙げて説明したが、かかる場合に限らず、コマンドモジュール(テーブル)を解析する上で、直前の状態、例えば、直前にコマンドモジュールのいずれの処理を行ったかを把握できれば足り、輝度値等、様々な情報を適用できる。また、照明態様によって保持される状態は、輝度に限らず、点灯「1」か消灯「0」の2値で表されてもよい。
【0137】
また、ここでは、演出照明装置204の照明パターンに対し、階層構造を設け、最も優先順位の高いレイヤの解析を先に行い、その解析結果を演出照明装置204に反映した後、最も優先順位の高いレイヤ以外のレイヤの解析を行う例を挙げて説明した。しかし、演出照明装置204の照明パターンに限らず、演出表示部200aに表示される画像パターン、演出役物装置202を駆動する役物パターンにも適用することができる。
【0138】
<RTCの制御>
上述したように、サブCPU330aは、現在の時刻を読み出す場合、I2C通信回線上にRTC348のアドレスを送信し、RTC348から現在の時刻を示すデータ(時刻情報)を受信する。RTC348は、集積回路(電気素子)で構成され、単体で任意のクロックに基づいて時刻および年月日を生成することができる。また、RTC348は、サブCPU330aの電源と独立した電源を有し、サブCPU330aの電源が切断されたとしても、時刻および年月日を更新し続けることができる。したがって、サブCPU330aは、電源の切断によって自己が管理する時刻が消去されたとしても、電源投入時にRTC348から時刻を読み出すことで、現在の時刻を用いた処理が可能となる。
【0139】
例えば、サブCPU330aは、RTC348から取得した現在の時刻を利用し、現在の時刻が予め定められた所定時刻に到達すると、所定の演出を実行することが可能となる(演出解放)。また、サブCPU330aは、当日の年月日を利用し、当日の年月日が予め定められた所定の年月日、例えば、遊技機100を象徴するキャラクタの誕生日に到達すると、そのことを祝う祝福演出を実行することが可能となる。また、サブCPU330aは、当日が属する季節に対応する演出を実行する。
【0140】
しかし、RTC348では、ハードウェアに起因する不具合により、計時した時刻が、本来の時刻と異なる場合がある。以下、かかる不具合による影響を説明する。
【0141】
図17は、サブCPU330aとRTC348との通信態様の比較例を示した説明図である。ここでは、説明の便宜上、サブCPU330aが、RTC348から4秒毎に(4秒周期で)現在の時刻を示す時刻情報を取得しているとする。なお、ここでは、取得する時刻情報を時分秒で示しているが、かかる場合に限らず、時刻情報として、秒より小さい単位、例えば、msec単位や、年月日を取得してもよい。ここでは、RTC348は既に初期化され、本来の時刻を示しており、時刻が順次更新されているとする。したがって、
図17のように、内部クロックに応じて時刻(RTC更新時刻)が「11:23:45」から1秒ずつインクリメントされている。
【0142】
サブCPU330aは、所定の周期(例えば、4秒)が到来すると、I2C通信を通じてRTC348から時刻情報を取得する。そして、サブCPU330aは、取得した時刻情報が示す時刻に応じた処理を実行する。例えば、サブCPU330aは、RTC348内の時刻が「11:23:47」のタイミングで、RTC348から時刻情報を取得したとする。サブCPU330aは、取得した時刻情報が示す時刻「11:23:47」に応じた演出を実行する。
【0143】
なお、ここでは、単に、サブCPU330aがI2C通信を通じてRTC348から時刻情報を取得すると説明しているが、具体的には、サブCPU330aは、RTC348との通信を確立するため、他のスレーブ装置に対する通信要求の受付を禁止、すなわち、他のスレーブ装置との通信を禁止した後(通信ロック)、I2C通信を通じてRTC348のアドレスを送信し、RTC348から現在の時刻を示すデータ(時刻情報)を受信し、受信後に他のスレーブ装置に対する通信要求の受付を許可している(通信アンロック)。なお、通信要求の受付禁止および許可は通信許可フラグに基づいて行われるとしてもよい。例えば、サブCPU330aは、通信要求の受付が許可されている状態で1のスレーブ装置に対する通信要求があると、通信許可フラグをONし、通信許可フラグがONしている間は他のスレーブ装置に対する通信要求の受付を禁止し、1のスレーブ装置との通信が完了すると、通信許可フラグをOFFして他のスレーブ装置に対する通信要求の受付を許可する。
【0144】
ここで、RTC348内の時刻が「11:23:49」のタイミングで、ハードウェアに起因する不具合、例えば、電磁波等のノイズにより、RTC348内で時刻を保持しているRAM、または、レジスタが影響を受けたとする。ここでは、かかる不具合により、RTC348内の時刻「11:23:49」が時刻「1:33:20」に変化したとする。したがって、RTC348は、変化後の時刻「1:33:20」から1秒ずつインクリメントを継続する。そして、所定の周期(例えば、4秒)が経過すると、サブCPU330aは、RTC348から時刻情報を取得する。サブCPU330aは、前回の時刻「11:23:47」から4秒経過しているので、本来、時刻「11:23:51」を取得できるはずだが、実際は時刻「1:33:22」を取得している。そうすると、サブCPU330aは、取得した時刻「1:33:22」に応じた演出を実行することとなる。
【0145】
例えば、本来は、時刻「11:23:51」に応じて、昼を連想させる演出(例えば、待ち受け演出)が実行されるところ、時刻「1:33:22」に応じて、深夜を連想させる演出が実行されてしまう。そうすると、遊技者は、現在の時刻に合っていない演出に違和感を覚えることとなる。
【0146】
また、かかるRTC348の時刻は、遊技機100内でエラーが生じた場合や設定変更を行った場合のタイムスタンプとして利用される。したがって、RTC348で更新された時刻が本来の時刻と異なると、例えば、エラーのタイムスタンプが示す時刻が、エラーが生じた本来の時刻と異なることになる。そうすると、時刻がエラーの抽出条件を満たさない場合にエラーの発見が遅れてしまうことがある。また、エラーが生じた時刻が本来の時刻とは異なるので、エラーが生じた状況を適切に再現できなくなり、エラーの原因を特定しにくくなる。また、RTC348に強い電磁波を意図的に加える等の不正行為によりRTC348の時刻が変更された場合、不正行為が実行された時刻も変化し、摘発が遅れたり、不正行為に起因する情報を十分に集約できないおそれもある。また、設定変更は、ホールの営業時間外に行われるが、ホールの営業時間内に不正に設定変更が行われた場合でも、RTC348の時刻が営業時間外を示していると、不正な設定変更が行われた事実が埋もれてしまう場合もある。
【0147】
そこで、RTC348での時刻の更新と並行して、サブCPU330aでも時刻を更新し、両者で整合をとることで、RTC348の時刻を適切な値に保つ。
【0148】
図18は、サブCPU330aとRTC348との通信態様の一例を示した説明図である。
図17同様、ここでは、説明の便宜上、時刻(時分秒)のみを示している。また、RTC348は既に初期化され、本来の時刻を示しており、時刻が順次更新されているとする。したがって、
図18のように、内部クロックに応じて時刻が「9:23:46」から1秒ずつインクリメントされている。
【0149】
サブCPU330aは、電源投入後の任意のタイミングにおいて、I2C通信を通じてRTC348から時刻を取得する。そして、サブCPU330aは、取得した時刻に応じた処理を実行する。例えば、サブCPU330aは、RTC348内の時刻が「9:23:47」のタイミングで、RTC348から時刻を取得したとする。サブCPU330aは、取得した時刻「9:23:47」に応じた演出を実行する。
【0150】
サブCPU330aは、さらに、取得した時刻「9:23:47」を初期値とし、その後、RTC348同様、自己完結的に時刻を更新する。ただし、サブCPU330aは、RTC348と異なり、遊技機100の電源が投入されている間しか時刻を更新することができず、電源の切断により時刻の情報が消去される。なお、電源切断が生じたとしても、不揮発性RAMによって時刻の情報を固定的に保持することはできるが、電源切断している間は時刻を更新できないので、電源投入時には電源切断時の時刻を示し、本来の時刻と異なることとなる。また、サブCPU330aは、RTC348と異なり、ソフトウェア計時を行っている。サブCPU330aは、例えば、所定の割込周期(例えば33msec)に応じて割込回数を計数し、その値に応じて時刻を更新する。
【0151】
ここで、RTC348内の時刻が「11:23:49」のタイミングで、ハードウェアに起因する不具合、例えば、電磁波等のノイズにより、RTC348内で時刻を保持しているRAM、または、レジスタが影響を受けたとする。ここでは、かかる不具合により、RTC348内の時刻「11:23:49」が時刻「1:33:20」に変化したとする。RTC348は、変化後の時刻「1:33:20」から1秒ずつインクリメントを継続する。そして、サブCPU330aは、所定の周期(例えば、4秒)で、RTC348から時刻情報を取得する。サブCPU330aは、前回の時刻「11:23:47」から4秒経過しているので、本来、RTC348から時刻「11:23:51」を取得できるはずだが、実際は時刻「1:33:22」を取得している。
【0152】
ただし、本実施形態において、サブCPU330aは、RTC348から取得した時刻の妥当性を検証している。すなわち、サブCPU330aは、自己が更新している時刻と、RTC348から取得した時刻とを比較する。例えば、サブCPU330aがRTC348から時刻「1:33:22」を取得したタイミングで、サブCPU330aは、自己で独立して時刻(CPU更新時刻)「11:23:51」を更新している。したがって、サブCPU330aは、自己が更新している時刻「11:23:51」と、RTC348から取得した時刻「1:33:22」とが異なることを把握できる。そうすると、サブCPU330aは、自己が更新している時刻「11:23:51」を、RTC348の初期値として再設定(補正)する。そして、サブCPU330aは、RTC348から取得した時刻「1:33:22」ではなく、自己が更新している時刻「11:23:51」に応じた処理を実行する。
【0153】
ここでは、サブCPU330aが、RTC348と並行して、サブCPU330a自体で独立して時刻を更新している。また、サブCPU330aは、RTC348から時刻情報を取得すると、その時刻情報が示す時刻を、自己で更新している時刻と比較して妥当性を判断する。そして、サブCPU330aは、RTC348から取得した時刻情報が示す時刻が妥当である(自己で更新している時刻と等しい)と判断すると、RTC348から取得した時刻情報が示す時刻を用い、RTC348から取得した時刻情報が示す時刻が妥当ではない(自己で更新している時刻と異なる)と判断すると、RTC348の時刻を自己で更新している時刻に再設定するとともに、その時刻を用いて処理を実行する。かかる構成により、RTC348の時刻を適切な値に保つことが可能となる。
【0154】
なお、ここでは、サブCPU330aが更新した時刻と、RTC348が更新した時刻とが異なる場合、サブCPU330aが更新した時刻を正しい値として採用している。これは、サブCPU330aのRAMやレジスタの方が、通電中、RTC348よりも、周囲環境の変化への耐性が高くなるように設計されており、例えば、電磁波等のノイズの影響を受けにくいように構成されているからである。
【0155】
また、サブCPU330aは、時刻の初期値について、電源投入後に取得したRTC348が更新した時刻情報が示す時刻をそのまま利用している。これは、サブCPU330aでは、遊技機100の電源が投入されている間しか時刻を更新することができず、一旦電源が切断されるとサブCPU330aが保持している時刻は信頼性がなくなり、その時点で最も信頼性の高い時刻はRTC348が更新した時刻となるからである。
【0156】
図19は、サブCPU330aの動作を説明するためのフローチャートである。
図19(a)は、遊技機100を設置したときの初期化設定処理を示し、
図19(b)は、遊技機100の設置後の通常処理を示している。
【0157】
RTC348の時刻は遊技機100の工場出荷時に初期設定されている。遊技機100を設置し、電源を投入した状態では、RTC348の時刻は出荷時の初期値となっており、現在の時刻と異なる場合がある。したがって、
図19(a)のように、サブCPU330aは、ホールの店員や管理者によるRTC348の時刻の設定入力の有無を判定し(S20)、設定入力がない間(S20におけるNO)、設定入力待ちとなる。サブCPU330aは、ホールの店員や管理者によるRTC348の時刻の設定入力があると(S20におけるYES)、入力された時刻をRTC348に設定する(S21)。
【0158】
また、
図19(a)のように、RTC348の時刻を設定した後、遊技機100の電源を投入すると、
図19(b)に示すように、サブCPU330aは、RTC348から時刻情報を取得し(S30)、取得した時刻情報が示す時刻を、サブCPU330a内で更新する時刻の初期値として設定する(S31)。
【0159】
そして、所定の割込周期(例えば33.3msec)の到来を待ち(S32におけるNO)、所定の割込周期が到来すると(S32におけるYES)、サブCPU330aは、RTC348から時刻情報を取得する(S33)。また、サブCPU330aは、割込周期の到来に応じて自己が管理する時刻を更新する(S34)。例えば、サブCPU330aは、割込周期の到来に応じてカウンタを1ずつインクリメントし、30(1秒/33msec)に到達すると、時刻を1秒ずつインクリメントしてカウンタを初期化する。
【0160】
続いて、サブCPU330aは、RTC348から取得された時刻情報が示す時刻と、自己で更新している時刻とを比較する(S35)。その結果、RTC348から取得された時刻情報が示す時刻と、自己で更新している時刻とが等しければ(S35におけるYES)、サブCPU330aは、ステップS37に処理を移し、RTC348から取得された時刻情報が示す時刻と、自己で更新している時刻とが異なっていれば(S35におけるNO)、サブCPU330aは、ステップS36に処理を移す。RTC348から取得された時刻と、自己で更新している時刻とが異なっている場合、何らかの不具合でRTC348の時刻が本来の時刻と異なってしまったと判断し、サブCPU330aは、自己で更新している時刻を、RTC348に設定する(S36)。サブCPU330aは、このようにして特定された時刻を、他の処理において参照できるようにサブRAM330bに保存する(S37)。
【0161】
かかる構成により、ハードウェアに起因する不具合によってRTC348の時刻が本来の時刻と異なってしまった場合であっても、RTC348の時刻を適切な値に保つことが可能となる。こうして、サブCPU330aは、適切な時刻に合わせた演出を実行でき、遊技者が違和感を覚えることもない。
【0162】
また、遊技機100内でエラーが生じた場合や設定変更を行った場合も、タイムスタンプとして適切な時刻が示されるため、エラーや設定変更の時刻や状況を適切に特定することが可能となる。
【0163】
また、電源が投入されている間は、RTC348よりも周囲環境の変化への耐性が高いサブCPU330aが更新した時刻を用い、電源が切断している間は、RTC348に時刻を更新させることで、電源の投入、切断に拘わらず、本来の時刻を適切に参照することが可能となる。
【0164】
このように、遊技機100では、CPU(例えば、サブCPU330a)と、RTC(RTC素子)348と、を備え、CPUは、第1タイミング(例えば、電源投入時等)においてRTC348から時刻情報を取得し、第1タイミングに取得した時刻情報が示す時刻を初期値とし、その後、時刻を更新し、第1タイミングより後の第2タイミング(例えば、所定周期到来時等)でRTC348から時刻情報を取得し、CPUが更新した時刻である第1時刻と、第2タイミングに取得した時刻情報が示す第2時刻とを比較し、第1時刻と第2時刻とが異なる場合、RTC348に第1時刻を設定する。
【0165】
なお、ここでは、第2タイミング(例えば、所定周期到来時等)でRTC348から時刻情報を取得し、サブCPU330aが更新した時刻である第1時刻と、第2タイミングに取得した時刻情報が示す第2時刻とを比較し、第1時刻と第2時刻とが異なる場合、RTC348に第1時刻を設定する例を挙げて説明したが、条件によっては、RTC348に第1時刻を設定しない場合があるとしてもよい。ハードウェアに起因する不具合が生じた場合、RTC348の第2時刻は大幅に変化する。しかし、第1時刻と第2時刻との時間差が小さい場合、例えば、3秒未満であった場合、ハードウェアに起因する不具合が生じたのではなく、単に、時刻の更新の誤差が生じただけの場合もある。したがって、CPU(例えば、サブCPU330a)は、第1時刻と第2時刻との時間差が所定時間差(例えば、3秒)以上である場合、RTC348に第1時刻を設定し、第1時刻と第2時刻との時間差が所定時間差未満である場合、RTC348に第1時刻を設定しないとしてもよい。なお、サブCPU330aよりRTC348の方が、時刻を更新する機能に特化している分、時刻が正確であることが多い。この場合、第1時刻より、第2時刻の方が正確な時刻であることが多いといえる。そこで、ここでは、第1時刻と第2時刻とが異なり、その時間差が所定時間差(例えば、3秒)未満である場合、RTC348に第1時刻を設定せず、その代わりに、サブCPU330aに第2時刻を設定することで、RTC348の時刻を適切な値に保つことが可能となる。しかし、このように、時間差が所定時間差未満となる場合に、必ず、サブCPU330aに第2時刻を設定するとなると処理が煩雑になるおそれがある。そこで、第1時刻と第2時刻とが異なり、その時間差が特定時間差(例えば、1秒)以上であり、かつ、所定時間差(例えば、3秒)未満である場合に、サブCPU330aに第2時刻を設定し、時間差が特定時間差未満である場合には、サブCPU330aに第2時刻を設定しない(かつ、RTC348に第1時刻を設定しない)としてもよい。こうして、第1時刻と第2時刻との時間差が特定時間差となるまで、サブCPU330aに第2時刻を設定する処理が行われないので、処理負荷を軽減することが可能となる。
【0166】
<アンプの制御>
また、サブCPU330aは、アンプ206aに楽曲データの音量を指示する場合、I2C通信を通じてアンプ206aのアドレスを送信してから音量情報を送信する。アンプ206aは、楽曲IC346aから入力した楽曲データ(楽曲信号)を、サブCPU330aから受信した音量情報が示す音量に応じて増幅し、増幅したアナログ信号をスピーカ206bに出力する。
【0167】
図20は、サブCPU330aとアンプ206aとの通信態様の比較例を示したタイミングチャートである。
図20では、I2C通信を通じた送信情報を実線で囲み、I2C通信を通じた受信情報を破線で囲んでいる。
【0168】
音量の設定指示があると、マスタ装置であるサブCPU330aは、スレーブ装置であるアンプ206a(特定のスレーブ装置)との通信を確立するため、他のスレーブ装置に対する通信要求の受付、すなわち、他のスレーブ装置との通信を禁止し(以下、単に、通信をロックすると言う)、
図20に示すように、I2C通信を通じて、アンプ206aのアドレス、Write要求(
図20中、単に「W」で示す)、音量情報を送信する。スレーブ装置であるアンプ206aは、自己のアドレスおよびWrite要求に応じて音量情報を受信する。サブCPU330aは、音量情報を送信後、他のスレーブ装置の通信要求の受付を許可、すなわち、他のスレーブ装置との通信を許可する(以下、単に、通信をアンロックすると言う)。なお、アドレスには、通信先のスレーブ装置を示すスレーブ装置アドレス、および、そのスレーブ装置における通信対象となるレジスタを示すレジスタアドレスも含まれる。例えば、サブCPU330aは、音量情報を送信する場合、アドレスとして、アンプ206aを示すスレーブ装置アドレスと、音声情報の格納先を示すレジスタアドレス(LSB=1b)とを指定する。また、音量情報には、通常時に伝達される音量を示す情報の他、電源投入時、アンプエラー発生後の初期化時、アンプ206aの設定変更時に伝達される、音量を設定または初期化するための情報も含まれる。
【0169】
サブCPU330aは、送信したデータ全てに対して巡回冗長検査(以下、単にCRC(Cyclic Redundancy Check)と言う)による計算を行い、検査結果(以下、CRC結果と言う。)を生成する。CRC結果は、CRCを計算した結果であり、データの誤りを検出する符号である。例えば、データの送信側は、予め定められた生成多項式で除算した余り(例えば、1バイト)をCRC結果としてデータに付加して送信し、データの受信側でも同じ生成多項式を用いてデータを除算し、その余りであるCRC結果同士が比較照合されることによってデータの誤りおよび破損が検出される。
【0170】
CRCの計算が終了すると、サブCPU330aは、アンプ206aとの通信を確立するため、再度、通信をロックし、I2C通信を通じてアンプ206aのアドレス、Write要求、CRC結果(第1のエラー判定情報)を送信する。ここで、アドレスは、アンプ206aを示すスレーブ装置アドレスと、CRC結果の格納先を示すレジスタアドレス(LSB=0b)とで構成されている。アンプ206aは、自己のアドレスおよびWrite要求に応じてCRC結果を受信する。サブCPU330aは、CRC結果の送信後、通信をアンロックする。
【0171】
アンプ206aは、CRC結果の受信(レジスタアドレスが示すレジスタへのCRC結果の格納)に応じて、受信した全てのデータのうち、CRC結果を除くデータに対してCRC結果(第2のエラー判定情報)を生成し、当該生成したCRC結果と、受信したCRC結果とを比較してエラー判定を行い、その比較結果をアンプ206a内のメモリに保持する。
【0172】
図21は、CRC結果の生成処理を説明するための説明図である。サブCPU330aは、アンプ206aに送信したデータ全てに対してCRCを計算する。したがって、サブCPU330aは、
図21における、音量情報の送信を完了し、通信をアンロックしたタイミングにおいて、それまでに送信したアドレス、Write要求、および、音量情報に加え、CRC結果を送信するためのアドレスおよびWrite要求も含めてCRCを計算することとなる。なお、CRC結果を送信するためのアドレスは、予め定められているため、サブCPU330aは、音量情報の送信完了時にはアドレスおよびWrite要求を把握できるので、音量情報の送信を完了したタイミングでCRCの計算を行うことができる。
【0173】
一方、アンプ206aも受信したデータ全てに対してCRCを計算する。ただし、アンプ206aは、I2C通信において自己を通信先として指定するアドレスを受信してから、自己を通信先として指定するCRC結果を受信するまでに、I2C通信を通じて伝達されたデータ全てに対してCRCを計算する。したがって、アンプ206aは、
図21に示すように、自己を通信先として指定するCRC結果を受信したタイミングにおいて、それまでに受信した全てのデータのうち、CRC結果を除くデータ、すなわち、自己を通信先として指定するアドレスから自己を通信先として指定するCRC結果を送信するためのWrite要求までに対してCRCを計算する。こうして、アンプ206aは、自己が計算したCRC結果と、サブCPU330aから受信したCRC結果とを比較し、エラー判定することが可能となる。なお、アンプ206aは、データを受信する度に、受信されたデータに対してCRCを順次計算している。こうして、CRCの計算効率を向上することができる。
【0174】
図20に戻り、サブCPU330aは、アンプ206aのCRC結果の生成時間以上の所定時間の経過後、アンプ206aとの通信を確立するため通信をロックし、I2C通信を通じてアンプ206aのアドレスおよびRead要求(
図20中、単に「R」で示す)を送信し、アンプ206aから比較結果を受信し、比較結果の受信後、通信をアンロックする。ここで、アドレスは、アンプ206aを示すスレーブ装置アドレスと、比較結果の読取先を示すレジスタアドレスとで構成されている。こうして、サブCPU330aからアンプ206aへ音量情報が適切に送信される。
【0175】
このように、サブCPU330aは、I2C通信を通じてアンプ206aに音量情報を送信する。なお、上述したように、かかるI2C通信では、1のマスタ装置(ここではサブCPU330a)に、複数のスレーブ装置を接続できる。例えば、アンプ206aが接続されたI2C通信のクロック信号線およびデータ信号線には、他のスレーブ装置としてRTC348も接続されている。そうすると、サブCPU330aは、アンプ206aとの通信をロックしている間は、RTC348との通信は受け付けないが、アンプ206aとの通信をアンロックすると、RTC348と通信を行うことができる。したがって、サブCPU330aは、
図20に示した音量情報の送信とCRCの送信の間に、RTC348から時刻情報を取得する可能性もある。このように、複数のスレーブ装置との通信が並行して行われることで以下の事象が生じ得る。
【0176】
図22は、サブCPU330aとアンプ206aとRTC348の通信態様の比較例を示したタイミングチャートである。
図22では、I2C通信を通じた送信情報を実線で囲み、I2C通信を通じた受信情報を破線で囲んでいる。
【0177】
音量の設定指示があると、サブCPU330aは、アンプ206aとの通信を確立するため通信をロックし、I2C通信を通じて、アンプ206aのアドレス、Write要求、音量情報を送信する。ここで、アドレスは、アンプ206aを示すスレーブ装置アドレスと、音量情報の格納先を示すレジスタアドレス(LSB=1b)とで構成されている。アンプ206aは、自己のアドレスおよびWrite要求に応じて音量情報を受信する。サブCPU330aは、音量情報を送信後、通信をアンロックする。また、サブCPU330aは、音量情報を含む送信データに対してCRCを計算し、CRC結果を生成する。
【0178】
ただし、サブCPU330aは、CRCの計算時には、アンプ206aとの通信をアンロックし、一旦、I2C通信を他のスレーブ装置に解放している。ここでは、仮に、I2C通信の解放中に時刻情報の取得指示があったとする。サブCPU330aは、時刻情報の取得指示に応じて、RTC348との通信を確立するため通信をロックし、I2C通信を通じてRTC348のアドレスおよびRead要求を送信する。ここで、アドレスは、RTC348を示すスレーブ装置アドレスと、時刻情報の読取先を示すレジスタアドレスとで構成されている。RTC348は、自己のアドレスおよびRead要求に応じて、自己が更新している時刻を示す時刻情報をサブCPU330aに送信する。サブCPU330aは、時刻情報を受信後、通信をアンロックする。こうして、サブCPU330aは、時刻情報を取得し、現在の時刻を把握することが可能となる。
【0179】
RTC348との通信がアンロックされ、かつ、CRC結果の計算が終了すると、サブCPU330aは、アンプ206aとの通信を確立するため通信をロックし、I2C通信を通じてアンプ206aのアドレスおよびWrite要求を送信し、CRC結果を送信する。ここで、アドレスは、アンプ206aを示すスレーブ装置アドレスと、CRC結果の格納先を示すレジスタアドレス(LSB=0b)とで構成されている。アンプ206aは、自己のアドレスおよびWrite要求に応じてCRC結果を受信する。サブCPU330aは、CRC結果の送信後、通信をアンロックする。
【0180】
上述したように、アンプ206aは、CRC結果の受信(レジスタアドレスが示すレジスタへのCRC結果の格納)に応じて、受信した全てのデータのうち、CRC結果を除くデータに対してCRC結果を生成し、当該生成したCRC結果と、受信したCRC結果とを比較してエラー判定を行い、その比較結果をアンプ206a内のメモリに保持する。
【0181】
図23は、CRC結果の生成処理を説明するための説明図である。サブCPU330aは、
図21同様、アンプ206aに送信したデータ全てに対してCRCを計算する。したがって、サブCPU330aは、
図23における、音量情報の送信を完了し、通信をアンロックしたタイミングにおいて、それまでに送信したアドレス、Write要求、および、音量情報に加え、CRC結果を送信するためのアドレスおよびWrite要求も含めてCRCを計算することとなる。なお、CRC結果を送信するためのアドレスは、予め定められているため、サブCPU330aは、音量情報の送信完了時にはアドレスおよびWrite要求を把握できるので、音量情報の送信を完了したタイミングでCRCの計算を行うことができる。
【0182】
一方、アンプ206aも受信したデータ全てに対してCRCを計算する。ただし、アンプ206aは、上述したように、I2C通信において自己を通信先として指定するアドレスを受信してから、自己を通信先として指定するCRC結果を受信するまで、I2C通信を通じて伝達されたデータ全てに対してCRCを計算する。したがって、アンプ206aは、
図23に示すように、自己を通信先として指定するCRC結果を受信したタイミングにおいて、それまでに受信した全てのデータのうち、CRC結果を除くデータ、すなわち、自己を通信先として指定するアドレスから自己を通信先として指定するCRC結果を送信するためのWrite要求までに対してCRCを計算する。これは、アンプ206aが、自己を通信先としていないデータ、例えば、RTC348との通信データ(アドレス、Read要求、時刻情報)も含めてCRCを計算してしまうことを示す。そうすると、サブCPU330aが生成したCRC結果は、その対象が、アドレス、Write要求、音量情報、アドレス、および、Write要求であるのに対し、アンプ206aが生成したCRC結果は、その対象が、アドレス、Write要求、音量情報、アドレス、Read要求、時刻情報、アドレス、および、Write要求となり、異なることとなる。したがって、アンプ206aは、自己が計算したCRC結果と、サブCPU330aから受信したCRC結果とを比較判定するが、その結果は整合していないこととなる。
【0183】
図22に戻り、サブCPU330aは、アンプ206aのCRC結果の生成時間以上の所定時間の経過後、アンプ206aとの通信を確立するため通信をロックし、I2C通信を通じてアンプ206aのアドレスおよびRead要求を送信し、アンプ206aから比較結果を受信し、比較結果の受信後、通信をアンロックする。ここで、アドレスは、アンプ206aを示すスレーブ装置アドレスと、比較結果の読取先を示すレジスタアドレスとで構成されている。しかし、上記のように、サブCPU330aが生成したCRC結果と、アンプ206aが生成したCRC結果とが異なっているので、アンプ206aは、その音量情報を採用することなく、また、サブCPU330aも音量情報を適切に送信していないこととなる。
【0184】
ここでは、例えば、アンプ206aが、I2C通信において自己を通信先として指定するアドレスを受信してから、自己を通信先として指定するCRC結果を受信するまでのデータ全て、すなわち、自己を通信先として指定していないデータに対してまでもCRCを計算する仕様となっていることに起因し、CRC結果を送信する前に、他のスレーブ装置との通信が行われることによってアンプ206aが生成するCRC結果が異なることとなる。そこで、本実施形態では、サブCPU330aが音量情報の送信時において通信をアンロックする前に、CRCを計算し、かつ、CRC結果を送信することで、音量情報の送信とCRC結果の送信との間に他のスレーブ装置の通信を実行させない。
【0185】
図24は、サブCPU330aとアンプ206aとRTC348の通信態様の一例を示したタイミングチャートである。
図24では、I2C通信を通じた送信情報を実線で囲み、I2C通信を通じた受信情報を破線で囲んでいる。
【0186】
音量の設定指示があると、サブCPU330aは、アンプ206aとの通信を確立するため通信をロックし、I2C通信を通じて、アンプ206aのアドレス、Write要求、音量情報を送信する。サブCPU330aは、音量情報を送信し、音量情報を含むデータに対してCRCを計算しCRC結果(第1のエラー判定情報)を生成する。なお、サブCPU330aは、音量情報を効率的に送信するために、音量情報を順次生成し、並行して、生成された音量情報を順次送信するとともに、その音量情報に対してCRCを順次計算する。そして、サブCPU330aは、音量情報に続けて、計算したCRC結果を送信する。ここでは、音量情報とCRC結果を一度に送るため、アドレスを、アンプ206aを示すスレーブ装置アドレスと、音量情報およびCRC結果の格納先を示すレジスタアドレス(LSB=0b)とで構成する。スレーブ装置であるアンプ206aは、自己のアドレスおよびWrite要求に応じて音量情報を受信し、引き続き、CRC結果を受信する。サブCPU330aは、CRC結果の送信後、通信をアンロックする。換言すれば、サブCPU330aは、音量情報の送信後には通信をアンロックせず(ロックさせたまま)、CRC結果を送信した後に通信をアンロックする。
【0187】
アンプ206aは、CRC結果の受信(レジスタアドレスが示すレジスタへの音量情報およびCRC結果の格納)に応じて、受信した全てのデータのうち、CRC結果を除くデータに対してCRC結果(第2のエラー判定情報)を生成し、当該生成したCRC結果と、受信したCRC結果とを比較してエラー判定を行い、その比較結果をアンプ206a内のメモリに保持する。
【0188】
図25は、CRC結果の生成処理を説明するための説明図である。サブCPU330aは、アンプ206aに送信したデータ全てに対してCRCを計算する。したがって、サブCPU330aは、
図25における、遅くとも音量情報の送信を完了するまでのタイミングにおいて、それまでに送信したアドレス、Write要求、および、音量情報に対してCRCを計算することとなる。サブCPU330aは、
図22のように、CRC結果を音量情報と独立して送信せず、
図24に示したように、CRC結果を音量情報に続いて一体的に送信している。そうすると、CRCの計算対象に、
図23のようなCRC結果を送信するためのアドレスおよびWrite要求が含まれない。したがって、サブCPU330aのCRCの計算負荷は小さくなる。
【0189】
一方、アンプ206aも受信したデータ全てに対してCRCを計算する。ただし、アンプ206aは、上述したように、I2C通信において自己を通信先として指定するアドレスを受信してから、自己を通信先として指定するCRC結果を受信するまで、I2C通信を通じて伝達されたデータ全てに対してCRCを計算する。したがって、アンプ206aは、
図25に示すように、自己を通信先として指定するCRC結果を受信したタイミングにおいて、それまでに受信した全てのデータのうち、CRC結果を除くデータ、すなわち、自己を通信先として指定するアドレスから音量情報までに対してCRCを計算する。しかし、サブCPU330aは、
図22のようにCRC結果を音量情報と独立して送信せず、
図24に示したように、CRC結果を音量情報に続いて一体的に送信している。したがって、ここでは、I2C通信において自己を通信先として指定するアドレスを受信してから、自己を通信先として指定するCRC結果を受信するまで、
図23のように、他のスレーブ装置の通信の情報がCRCの計算に含まれることがない。こうして、アンプ206aは、自己が計算したCRC結果と、サブCPU330aから受信したCRC結果とを比較判定すると、両者が一致することになる。
【0190】
図24に戻り、サブCPU330aは、CRC結果の送信後は、アンプ206aとの通信をアンロックし、一旦、他のスレーブ装置にI2C通信を解放している。ここでは、仮に、I2C通信の解放中に時刻情報の取得指示があったとする。サブCPU330aは、時刻情報の取得指示に応じて、RTC348との通信を確立するため通信をロックし、I2C通信を通じてRTC348のアドレスおよびRead要求を送信する。ここで、アドレスは、RTC348を示すスレーブ装置アドレスと、時刻情報の読取先を示すレジスタアドレスとで構成されている。RTC348は、自己のアドレスおよびRead要求に応じて、時刻情報をサブCPU330aに送信する。サブCPU330aは、時刻情報を受信後、通信をアンロックする。こうして、サブCPU330aは、時刻情報を取得し、現在の時刻を把握することが可能となる。
【0191】
RTC348との通信がアンロックされ、かつ、CRC結果の計算が終了すると、サブCPU330aは、アンプ206aのCRC結果の生成時間以上の所定時間の経過後、アンプ206aとの通信を確立するため通信をロックし、I2C通信を通じてアンプ206aのアドレスおよびRead要求を送信し、アンプ206aから比較結果を受信し、比較結果の受信後、通信をアンロックする。ここで、アドレスは、アンプ206aを示すスレーブ装置アドレスと、比較結果の読取先を示すレジスタアドレスとで構成されている。
【0192】
ここでは、サブCPU330aが、CRC結果の送信後に、他のスレーブ装置であるRTC348との通信を確立しているが、CRCの計算の対象となる全てのデータは既にアンプ206aに送信されており、アンプ206aは、I2C通信において自己を通信先として指定するアドレスを受信してから、自己を通信先として指定するCRC結果を受信するまで、
図23のように、他のスレーブ装置の通信の情報をCRCの計算に含めることはない。したがって、
図22、
図23で示したように、サブCPU330aとアンプ206aとでCRC結果が異なることがなく、適切なCRC結果を得ることができる。
【0193】
また、
図22の比較例ではタイミングを異にして送信している音量情報とCRC結果とを、
図24の例では一度に送信しているので、サブCPU330aとアンプ206aとによる通信回数を削減することができ、他のスレーブ装置との通信を阻害する確率を低減することが可能となる。
【0194】
また、タイミングを異とすることで、音量情報とCRC結果のいずれにも必要であった、アドレスおよびWrite要求が、音量情報とCRC結果で合わせて1回しか必要がなくなり、サブCPU330aおよびアンプ206aのCRCの計算負荷を低減できるとともに、通信時間の短縮が可能となる。したがって、電源投入時等においてサブCPU330aと他のスレーブ装置、例えば、RTC348との通信を開始し、時刻情報を早期に取得することが可能となる。
【0195】
上記では、サブCPU330aは、音量情報を送信した後、すぐに通信をアンロックせず(ロックさせたまま)、CRC計算を行って、CRC結果を送信した後にアンロックする例を挙げて説明した。かかる場合、サブCPU330aが音量情報を送信している間に並行してCRC計算を行うのが、処理能力上、難しい場合がある。その場合、サブCPU330aは、音量情報を送信した後にCRCを計算し、計算後にCRC結果を送信することとなる。すなわち、CRCを計算する間、I2C通信はロック状態を維持したままとなるので、サブCPU330aは、CRC結果の送信待ち状態となる。かかるCRC結果の送信待ち状態は、DMA(Direct Memory Access)コントローラを用いることで解消可能である。
【0196】
図26は、サブCPU330aの送信態様を説明するためのタイミングチャートである。サブCPU330aは、音量の設定指示に応じて音量情報を生成する。サブCPU330aは、音量情報を生成すると、アンプ206aとの通信をロックし、アドレス、Write要求、音量情報をDMAコントローラに設定する。DMAコントローラは、設定されたアドレス、Write要求によってアンプ206aと通信を確立し、音量情報をアンプ206aに送信する。
【0197】
サブCPU330aは、アドレス、Write要求、音量情報をDMAコントローラに設定した後は、送信処理に携わることなく、送信処理以外の処理を実行できる。ここで、サブCPU330aは、DMAコントローラに設定したアドレス、Write要求、および、音量情報に対してCRCを計算する。サブCPU330aは、CRC結果を生成すると、生成したCRC結果をDMAコントローラに設定し、アンプ206aとの通信をアンロックする。DMAコントローラは、設定されたアドレス、Write要求に続き、CRC結果もアンプ206aに送信する。
【0198】
ここで、サブCPU330aは、アンプ206aとの通信をDMAコントローラに任せ、DMAコントローラがアンプ206aにデータを送信しているタイミングで、並行して、CRC結果を生成している。したがって、サブCPU330aは、データの送信負荷が小さく、また、CRCの計算によっては処理負荷自体も小さいので、早期に他の処理を実行することが可能となる。なお、ここでは、サブCPU330aは、CRC結果をDMAコントローラに設定した後、すぐに通信をアンロックすることができる。これは、一旦、DMAコントローラに送信データを設定したら、その送信データの送信が完了するまで、DMAコントローラの送信情報に他の送信データが割込むことがなく、アンプ206aは適切に、アドレス、Write要求、音量情報、および、CRC結果を受信することができるからである。
【0199】
なお、上記のサブCPU330aがアンプ206aと通信を行うタイミングと通信量は以下の通りである。例えば、サブCPU330aは、電源投入時、アンプエラー発生後の初期化時、アンプの設定変更時に、複数バイト、例えば、100バイトの音量情報を送信する(バーストライト)。また、サブCPU330aは、遊技者が音量を調整した場合に、1バイトの音量情報を送信することもある(シングルライト)。
【0200】
このように、遊技機100では、マスタ装置(例えば、サブCPU330a)と、マスタ装置と1のシリアル通信回線(例えば、I2C通信回線)で並列接続された複数のスレーブ装置(例えば、アンプ206a、RTC348等)と、を備え、マスタ装置は、複数のスレーブ装置のうち、特定のスレーブ装置(例えば、アンプ206a)との通信を確立し、特定のスレーブ装置に特定情報(例えば、アドレス、Write要求、音量情報)を送信し、特定情報に基づいて第1のエラー判定情報(例えば、CRC結果)を生成し、特定のスレーブ装置に第1のエラー判定情報を送信し、特定のスレーブ装置は、マスタ装置から特定情報の受信を開始してから、マスタ装置から第1のエラー判定情報を受信するまでに、シリアル通信回線を通じて受信したデータに基づいて第2のエラー判定情報(例えば、CRC結果)を生成し、第1のエラー判定情報と第2のエラー判定情報とを比較してエラー判定を行うことを前提に、マスタ装置は、特定のスレーブ装置との通信を確立した後、他のスレーブ装置との通信を禁止し(通信ロック)、特定情報に続き、第1のエラー判定情報を送信し、第1のエラー判定情報の送信後、他のスレーブ装置との通信を許可する(通信アンロック)。
【0201】
また、遊技機100では、マスタ装置(例えば、サブCPU330a)と、マスタ装置と1のシリアル通信回線(例えば、I2C通信回線)で並列接続された複数のスレーブ装置(例えば、アンプ206a、RTC348等)と、を備え、マスタ装置は、複数のスレーブ装置のうち、特定のスレーブ装置(例えば、アンプ206a)との通信を確立し、他のスレーブ装置との通信を禁止し(通信ロック)、特定のスレーブ装置に特定情報(例えば、アドレス、Write要求、音量情報)を送信し、特定情報に基づいてエラー判定情報を生成し、特定情報に続き、特定のスレーブ装置にエラー判定情報(例えば、CRC結果)を送信し、エラー判定情報の送信後、他のスレーブ装置との通信を許可する(通信アンロック)。
【0202】
なお、ここでは、シリアル通信回線としてI2C通信回線を例示したが、かかる場合に限らず、複数の装置が相互にシリアル通信可能な様々な通信規格を採用することができる。また、ここでは、特定情報として、アドレス、Write要求、および、音量情報の連続したデータを例示したが、かかる場合に限らず、エラーが生じ得る連続するデータであれば足りる。また、ここでは、エラー判定情報の生成手段としてCRC(巡回冗長検査)を挙げて説明したが、かかる場合に限らず、パリティ符号、チェックサム、ハッシュ関数等、様々な誤り検出手段を用いることができる。
【0203】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる実施形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【0204】
例えば、上述した実施形態においては、遊技機として、大当たり図柄を含む複数種類の図柄の中からいずれかを決定する図柄決定手段と、図柄が決定されてから所定の変動時間が経過すると、図柄表示部に図柄を表示させる図柄表示手段と、図柄表示部に大当たり図柄が表示されると、複数回のラウンド遊技で構成される大役遊技を実行する大役遊技実行手段と、大役遊技におけるラウンド遊技のうち予め設定された特定ラウンド遊技中に、大入賞口に入球した遊技球が特定領域に進入すると、所定の遊技利益を付与する遊技利益付与手段と、大役遊技中の演出を実行する演出実行手段と、を備えるパチンコ機を例示した。しかし、かかる場合に限らず、スタートスイッチの操作に基づき、複数種類の当選役のいずれかを当選役抽選により決定する当選役抽選手段と、スタートスイッチの操作に応じて、複数種類の図柄がそれぞれ配列された複数の回転リールを回転制御し、回転している回転リールに対応するストップスイッチの操作に応じ、当選役抽選手段の抽選結果に基づいて、操作されたストップスイッチに対応する回転リールをそれぞれ停止制御するリール制御手段と、複数種類の演出のいずれかを実行する演出制御手段と、を備えるスロットマシンにも適用できる。以下、スロットマシン600について詳述する。
【0205】
(スロットマシン600の機械的構成)
図27および
図28の外観図に示すように、スロットマシン600は、略矩形状の箱体である筐体602と、筐体602の前面開口部に対して回動可能な連結部材により開閉可能に取り付けられた前面上扉604と、前面上扉604の下方に位置し、前面上扉604同様、筐体602の前面開口部に対して開閉可能に取り付けられた前面下扉606と、前面下扉606の下部に位置し、メダル排出口608aから払い出されたメダルを貯留するための受け皿部608とを備えている。
【0206】
前面下扉606の上部には操作部設置台622が形成され、操作部設置台622には、メダル投入部624、ベットスイッチ626、スタートスイッチ628、ストップスイッチ630、演出スイッチ632等が配設されている。
【0207】
操作部設置台622の右側に位置するメダル投入部624は、メダル投入口624aを通じて遊技媒体としてのメダルの投入を受け付け、前面下扉606の背面に設けられたメダルセレクタ(図示せず)にメダルを送る。メダルセレクタには、メダルの投入が可能な投入期間外に投入されたメダルや規格外のメダルをメダル排出口608aに導くブロッカー(図示せず)と、投入期間内に投入された規格内のメダルの通過を検出する投入メダル検出部624bとが設けられている。ここで、メダル排出口608aに導かれたメダルは受け皿部608に排出される。遊技者により、1遊技を開始するために必要なメダルの投入枚数である規定投入枚数を超えてメダルが投入されると、その規定投入枚数を超えた分のメダルが、所定枚数(例えば50枚)を上限としてスロットマシン600の内部に電気的に貯留(以下、単にクレジットと言う)される。上記1遊技については後程詳述する。
【0208】
また、ここでは、規定投入枚数は「3」または「2」に設定されている。なお、1遊技を実行するために必要なメダル数を、複数の規定投入枚数から任意に選択できる場合、その複数の規定投入枚数の中の最大のものを最大規定投入枚数と言い、最小のものを最小規定投入枚数と言う。仮に、規定投入枚数が1~3の間で選択可能な場合、最大規定投入枚数は「3」となり、最小規定投入枚数は「1」となる。
【0209】
ベットスイッチ626は、クレジットされているメダルのうち規定投入枚数のメダルを投入(ベット)する、押圧式のボタンスイッチである。規定投入枚数以上のメダルがクレジットされている状態で、ベットスイッチ626を押圧すると、1遊技が開始可能となるとともに、クレジットされているメダルが規定投入枚数分だけ減枚される。
【0210】
操作部設置台622の左側に位置するスタートスイッチ628は、傾倒操作を検出可能なレバーで構成され、遊技者による1遊技の開始操作を検出する。また、スタートスイッチ628は、押圧操作を検出可能なボタンスイッチによって構成することも可能である。
【0211】
前面上扉604の下部略中央には、ガラス板や透明樹脂板等で構成された無色透明の図柄表示窓636が設けられ、筐体602内の図柄表示窓636に対応した位置には、リールユニット634が設けられている。リールユニット634には、
図29のリールの図柄配列に示すように、21に等分された各領域に複数種類の図柄がそれぞれ配列された3つの回転リール(左リール634a、中リール634b、右リール634c)が、それぞれ独立して回動可能に設けられ、遊技者は、図柄表示窓636を通じて、左リール634a、中リール634b、右リール634cを視認することができる。リールユニット634は、スタートスイッチ628の操作を契機として、左リール634a、中リール634b、右リール634cの回転を開始する。
【0212】
操作部設置台622の中央に位置するストップスイッチ630は、左リール634a、中リール634b、右リール634cそれぞれに対応して設けられた、遊技者の押圧操作を検出可能なボタンスイッチであり、左リール634a、中リール634b、右リール634cそれぞれを停止させようとする遊技者の停止操作を検出する。なお、ストップスイッチ630に、かかる3つのボタンスイッチを特にストップボタンスイッチとよび、その位置に応じて左から順にストップボタンスイッチ630a、ストップボタンスイッチ630b、ストップボタンスイッチ630cとする。
【0213】
演出スイッチ632は、押圧式のボタンスイッチと、その周囲に回転自在に配されたジョグダイヤルスイッチとから構成され、遊技者の押圧操作や回転操作を検出する。かかる演出スイッチ632は、主として演出中に用いられ、遊技者の操作によって演出態様を異ならせることができる。
【0214】
前面上扉604の上部略中央には、演出に伴う様々な映像を表示する液晶表示部638が設けられている。また、前面上扉604の上部や左右には、例えば高輝度の発光ダイオード(LED)によって構成される演出用ランプ642が設けられる。また、図柄表示窓636と操作部設置台622との間には、駆動装置からなる演出役物装置660が設けられている。
【0215】
また、
図28に示すように、前面上扉604の裏面における液晶表示部638の左右位置や前面下扉606の裏面における内面左右位置には、効果音や楽音等による聴覚的な演出を行うスピーカ640が設けられている。さらに、筐体602内におけるリールユニット634の下方には、メダル排出口608aからメダルを払い出すためのメダル払出装置(メダルホッパー)764が設けられている。メダル払出装置764は、メダルを貯留するメダル貯留部764aと、メダル貯留部764aに貯留されたメダルをメダル排出口608aから排出するための払出制御部764bと、メダル排出口608aから排出されるメダルを検出する払出メダル検出部764cとを備えている。具体的に払出制御部764bは、当該払出制御部764bの本体外装に回動可能に支持され、メダル貯留部764aから落下したメダルが上方より1枚ずつ嵌入するメダル嵌入孔を円周方向に複数配してなるディスク(図示せず)と、かかるディスクを回転するディスクモータ(図示せず)とを備え、このディスクを回転させて、メダル嵌入孔に嵌入したメダルを、押出機構を通じて1枚ずつ外部に排出するとともに、排出により空いたメダル嵌入孔に次のメダルを順次嵌入させることで、メダルを1枚ずつ連続排出する。
【0216】
また、
図27や
図28では図示していないが、各回転リール634a、634b、634cの内側には、左リール634a、中リール634b、右リール634cそれぞれに施された図柄のうち、図柄表示窓636に対応する(払い出しの対象となるラインである有効ラインの対象となり得る)各回転リール634a、634b、634cの上段、中段、下段の図柄を背面から個々に独立して照射するリールバックライト644(
図30参照)が設けられている。また、図柄表示窓636の裏面上部にも左リール634a、中リール634b、右リール634c全ての正面を直接照射するリール上方ライト646が設けられている。
【0217】
また、
図27に示すように、操作部設置台622において、図柄表示窓636とストップスイッチ630との間に設けられた段部622aの略水平面には、メインクレジット表示部652およびメイン払出表示部654が設けられている。また、図柄表示窓636と操作部設置台622との間には、サブクレジット表示部656およびサブ払出表示部658が設けられている。これらメインクレジット表示部652およびサブクレジット表示部656にはクレジット枚数が表示され、メイン払出表示部654およびサブ払出表示部658にはメダルの払出枚数が表示される。なお、サブクレジット表示部656およびサブ払出表示部658には、演出に伴う様々な数値を表示することもできる。
【0218】
また、筐体602内の任意の位置には、電源スイッチ648が設けられている。電源スイッチ648は、ロッカースイッチ等、押圧操作を検出可能なスイッチで構成され、当該スロットマシン600を管理する管理者側が操作し、電源の切断状態と電源の投入状態の2つの状態を切り換えるために用いられる。
【0219】
なお、本実施形態において、上記1遊技は、メダル投入部624を通じたメダルの投入、ベットスイッチ626の操作を通じたクレジットされているメダルの投入、または、リプレイ役が有効ライン上に表示されたことに基づくメダルの自動投入のいずれかが行われてから、遊技者によるスタートスイッチ628の操作に応じて、複数の回転リール634a、634b、634cが回転制御されるとともに当選役抽選が実行され、当選役抽選の抽選結果および遊技者による複数のストップボタンスイッチ630a、630b、630cの操作に応じて、操作されたストップボタンスイッチ630a、630b、630cに対応する回転リール634a、634b、634cがそれぞれ停止制御され、メダルの払い出しを受け得る当選役に入賞した場合、そのメダルの払い出しが実行されるまでの遊技をいう。また、メダルの払い出しを受け得る当選役に非当選であった場合または当選したが入賞しなかった場合、回転リール634a、634b、634cが全て停止したことをもって1遊技が終了する。ただし、1遊技の開始を、上記のメダルの投入、または、リプレイ役の当選の代わりに、遊技者によるスタートスイッチ628の操作と読み替えてもよい。また、かかる1遊技が繰り返される数を遊技数とする。
【0220】
(スロットマシン600の電気的構成)
図30は、スロットマシン600の概略的な電気的構成を示したブロック図である。
図30に示すように、スロットマシン600は、主として、制御基板によって制御されている。ここでは、制御基板の一例として、制御基板の機能を分担した、主制御基板700と、副制御基板702とを挙げて説明する。例えば、遊技の進行に関わるプログラムのうち、遊技に供する当選役の抽選やその入賞といったような、特に重要な処理を主制御基板700で実行し、それ以外の例えば演出に関する処理を副制御基板702で実行している。また、
図30に示したように、主制御基板700と副制御基板702との間の電気的な信号の伝達は、不正防止等の観点から、主制御基板700から副制御基板702への一方向のみに制限される。ただし、このような制限がなければ、電気的に双方向通信も技術的に可能である。
【0221】
(主制御基板700)
主制御基板700は、中央処理装置であるメインCPU700a、プログラム等が格納されたメインROM700b、ワークエリアとして機能するメインRAM700c等を含む各種半導体集積回路を有し、スロットマシン600全体を統括的に制御する。ただし、メインRAM700cには不図示のバックアップ電源が接続されており、電源が切断された場合においても、設定変更が行われてメインRAM700cの初期化処理を実行しない限り、データが消去されることなく保持される。
【0222】
また、主制御基板700は、メインCPU700aが、メインROM700bに格納されたプログラムに基づきメインRAM700cと協働することで機能する、初期化手段800、ベット手段802、当選役抽選手段804、リール制御手段806、判定手段808、払出制御手段810、状態移行手段812、コマンド決定手段814、コマンド送信手段816等の機能部を有する。
【0223】
初期化手段800は、主制御基板700における初期化処理を実行する。ベット手段802は、遊技に使用するためのメダルをベットする。ここで、ベットは、ベットスイッチ626の操作を通じてクレジットされているメダルを投入する場合と、メダル投入部624を通じてメダルを投入する場合と、リプレイ役が有効ライン上に表示されたことに基づいてメダルを自動投入する場合のいずれも含む。当選役抽選手段804は、メダルのベットおよびスタートスイッチ628の操作に基づき、小役、リプレイ役、および、ボーナス役を含む複数種類の当選役、ならびに、ハズレのうちいずれかを当選役抽選により決定する。
【0224】
リール制御手段806は、スタートスイッチ628の操作に応じて、複数の回転リール634a、634b、634cを回転制御し、回転している回転リール634a、634b、634cにそれぞれ対応した複数のストップボタンスイッチ630a、630b、630cの操作に応じ、操作されたストップボタンスイッチ630a、630b、630cに対応する回転リール634a、634b、634cをそれぞれ停止制御する。また、リール制御手段806は、スタートスイッチ628の操作に応じて、前回の遊技においてストップスイッチ630の操作を有効化してから、当選役抽選の抽選結果を表示するために遊技者によるストップスイッチ630の操作を有効化するまで(前回の遊技におけるストップスイッチ630の操作完了により無効化されている)の時間を規定の時間より延長し、その間、回転リール634a、634b、634cを多彩な態様で回転させるリール演出(フリーズ演出)を行う場合がある。リール演出は、本来有効となるべき任意のスイッチを所定時間有効にしなかったり、本来実行されるべき処理を所定時間保留したり、本来送受信されるべき任意のスイッチの信号を所定時間送信または受信させなかったりすることで実現できる。
【0225】
判定手段808は、当選役抽選で決定した当選役に対応する図柄組み合わせが有効ライン上に表示されたか否か判定する。ここで、当選役抽選で決定した当選役に対応する図柄組み合わせが有効ライン上に表示されることを単に入賞と言う場合がある。払出制御手段810は、当選役抽選で決定した当選役に対応する図柄組み合わせが有効ライン上に表示されたこと(入賞されたこと)に基づいて、当該当選役に対応する数だけメダルを払い出す。状態移行手段812は、ボーナス役の当選や入賞に基づいて遊技状態を遷移させる。
【0226】
コマンド決定手段814は、ベット手段802、当選役抽選手段804、リール制御手段806、判定手段808、払出制御手段810、状態移行手段812等の動作に伴う、遊技に関するコマンドを順次決定する。コマンド送信手段816は、コマンド決定手段814が決定したコマンドを副制御基板702に順次送信する。
【0227】
主制御基板700では、投入メダル検出部624b、ベットスイッチ626、スタートスイッチ628およびストップスイッチ630から各種の検出信号を受信しており、受信した検出信号に基づいて、ベット手段802、当選役抽選手段804、リール制御手段806、判定手段808が上述した種々の処理を実行する。また、主制御基板700には、メインクレジット表示部652およびメイン払出表示部654が接続されており、払出制御手段810が両表示部652、654に対してメダルのクレジット枚数や払出枚数の表示を制御する。
【0228】
また、主制御基板700には、リール駆動制御部758が接続されている。このリール駆動制御部758は、スタートスイッチ628の操作信号に応じ、リール制御手段806から送信される各回転リール634a、634b、634cの回転開始信号に基づいて、ステッピングモータ762を駆動するとともに、ストップスイッチ630の操作信号に応じ、リール制御手段806から送信される、左リール634a、中リール634b、右リール634cそれぞれの停止信号および回転位置検出回路760の検出信号に基づいて、ステッピングモータ762の駆動を停止する。
【0229】
また、主制御基板700には、メダル払出装置764が接続されている。主制御基板700には払出メダル検出部764cの検出信号が入力されるようになっており、払出制御手段810は、その検出信号に応じてメダルの払出枚数を計数しながら払出制御部764bからのメダルの排出を制御する。
【0230】
また、主制御基板700には、乱数発生器700dが設けられる。乱数発生器700dは、計数値を順次インクリメントし、所定の総数(例えば65536)内でループさせ(0~65535)、所定の時点における計数値を抽出することで乱数を生成(取得)する。主制御基板700の乱数発生器700dによって生成される乱数(以下、当選役抽選乱数と言う)は、遊技者に付与する遊技利益、例えば、当選役抽選手段804が当選役抽選を実行するために用いられる。
【0231】
(副制御基板702)
また、副制御基板702は、主制御基板700と同様に、中央処理装置であるサブCPU702a、プログラム等が格納されたサブROM702b、ワークエリアとして機能するサブRAM702c等を含む各種半導体集積回路を有し、主制御基板700からのコマンドに基づき、特に演出を制御する。また、サブRAM702cにもメインRAM700c同様、不図示のバックアップ電源が接続されており、電源が切断された場合においても、データが消去されることなく保持される。なお、副制御基板702にも、主制御基板700同様、乱数発生器702dが設けられており、乱数発生器702dによって生成される乱数(以下、演出抽選乱数と言う)は、主に演出の態様を決定するために用いられる。
【0232】
また、副制御基板702は、サブCPU702aが、サブROM702bに格納されたプログラムに基づき、サブRAM702cと協働することで機能する、初期化決定手段830、コマンド受信手段832、演出制御手段834等の機能部を有する。
【0233】
初期化決定手段830は、副制御基板702における初期化処理を実行する。コマンド受信手段832は、主制御基板700等、他の制御基板からのコマンドを受信し、コマンドに対する処理を行う。演出制御手段834は、演出スイッチ632から検出信号を受信するとともに、当選役コマンドに基づいて液晶表示部638、スピーカ640、演出用ランプ642の各デバイスで行われる遊技の演出を決定する。具体的に、演出制御手段834は、液晶表示部638に表示される画像データや、演出用ランプ642、リールバックライト644、リール上方ライト646、サブクレジット表示部656、サブ払出表示部658等の電飾機器を通じた演出のための電飾データを決定するとともに、スピーカ640から出力すべき音声を構成する音声データを決定する。そして、演出制御手段834は、決定した遊技の演出を実行する。
【0234】
演出は、上述したリール演出のような主制御基板700によって実行される演出と、副制御基板702によって実行される演出がある。副制御基板702によって実行される演出は、遊技の進行に伴い、液晶表示部638、スピーカ640、演出用ランプ642、リールバックライト644、リール上方ライト646、サブクレジット表示部656、サブ払出表示部658等を通じて提供される視覚的および聴覚的な表現手段であり、当該遊技にストーリー性を与えたり、当選役抽選の結果をよりダイナミックな画像で示唆したりすることができる。このような演出では、例えば、ボーナス遊技の当選を示唆する演出を複数遊技に亘って行い、遊技者の期待感を高めることができる。また、たとえ、いずれの当選役にも当選していなかったとしても、恰も当選しているかのような演出を通じて遊技者に高配当の期待感を持たせ、遊技者を飽きさせないようにすることが可能となる。
【0235】
ここで、演出制御手段834は、上述した演出決定手段332と、演出実行手段334として機能し、演出用ランプ642は、演出照明装置204として機能する。また、サブCPU702aは、上述したサブCPU330aとして機能し、スピーカ640は、上述したスピーカ206bとして機能する。また、ここでは、説明を省略しているが、副制御基板702には、上述したアンプ206aと同機能のアンプ、上述したRTC348と同機能のRTCを含んでいる。
【符号の説明】
【0236】
100 遊技機
300a メインCPU
L1~L5 集合発光体
Q1 シフトレジスタ回路(データ出力回路)
Q2 シフトレジスタ回路(コモン出力回路)
Q3、Q4 パルス発生回路(無効回路)
Q5 遅延回路(無効回路)
P1、P2 ドライバ回路
R1~R3 集合抵抗