JP5238951B2 - 遊技機 - Google Patents
遊技機 Download PDFInfo
- Publication number
- JP5238951B2 JP5238951B2 JP2007319393A JP2007319393A JP5238951B2 JP 5238951 B2 JP5238951 B2 JP 5238951B2 JP 2007319393 A JP2007319393 A JP 2007319393A JP 2007319393 A JP2007319393 A JP 2007319393A JP 5238951 B2 JP5238951 B2 JP 5238951B2
- Authority
- JP
- Japan
- Prior art keywords
- initialization
- register
- value
- processing
- control board
- 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.)
- Active
Links
Landscapes
- Pinball Game Machines (AREA)
Description
特許文献1に開示されている通り、遊技機の起動中、主制御基板は、ROMに予め用意されたループ処理を繰り返し実行する。その過程で、数msecごとに割込処理を実行し、遊技状態の判定、サブ統合基板等への指示などを行う。
しかし、遊技機では、制御用のプログラムサイズに対して3KB以内という厳しい制約があるため、わずかな容量であっても、看過し得ない場合がある。ウォッチドッグタイマの経過時間初期化処理は、可能な限り、簡素化したい処理の一つである。
遊技機の制御は、上述の演算部およびメモリを搭載した主制御装置によって全てを行うようにしてもよいし、更に、主制御装置からの情報に基づいて制御する下位制御装置を設け、これら複数の制御装置の分散処理によるものとしてもよい。下位制御装置としては、例えば、演出装置を制御するための演出制御装置、払出装置を制御するための払出制御装置などを設けることができる。
制御処理監視部は、リセット処理部、複数の初期化レジスタ、経過時間初期化部を有している。リセット処理部は、その起動後または初期化後の経過時間が所定の基準時間を超過すると、演算部の動作をリセットする。演算部以外に、設定レジスタ、入出力バッファその他の他の周辺回路を併せてリセットするものとしてもよい。
初期化レジスタは、演算部が値を書き込み可能な素子であり、経過時間初期化部は、複数の初期化レジスタのそれぞれに、演算部から書き込みが行われた場合には、経過時間の計測を初期化する。初期化レジスタに書き込まれる値は、任意の値でよい。
例えば、計時用のディジタルタイマを用い、そのタイマ値が基準時間に相当する値になった時に演算部の動作をリセットするようにしてもよい。ディジタルタイマとしてカウントアップタイマを用いている場合には、初期化レジスタへの書き込みが行われた時には、このタイマ値を値0に初期化すればよい。また、ディジタルタイマとしてカウントダウンタイマを用いている場合には、初期化レジスタへの書き込みが行われた時には、タイマ値を基準時間に設定することによって初期化できる。
別の態様として、コンデンサ(C)と抵抗(R)の組み合わせ回路、いわゆるRC回路を用いても良い。RC回路の電圧は、電圧印加開始後の時間とともに、時定数に応じた一定の変化を示すことが知られているから、この電圧値が、基準時間に対応する所定値に達した時に、演算部の動作をリセットすればよい。この場合には、初期化レジスタへの書き込みが行われた時には、コンデンサ(C)を放電させる処理を行うことによって、初期化することができる。
上述のディジタルタイマおよびRC回路の初期化は、制御処理監視部が直接行うものとしてもよいし、別回路で行うものとしてもよい。例えば、ディジタルタイマ等が、制御処理監視部とは別に設けられた外付け回路である場合には、制御処理監視部は、初期化を指示する信号を出力し、外付け回路がこの信号に応じて、それぞれ上述の初期化を行うようにしてもよい。
以下では説明の便宜上、ディジタルタイマを用いるディジタルでの経過時間の計測方法、およびRC回路を用いたアナログでの経過時間の計測方法の双方を含めて、「経過時間の計測」と呼び、この計測を初期化することを「経過時間初期化」と呼ぶものとする。
経過時間初期化処理では、複数の初期化レジスタに対して、必ずしも連続で書き込む必要はなく、それぞれ経過時間が基準時間を超えない所定のタイミングで書き込めばよい。また、複数の初期化レジスタに対して同じ値を書き込む必要もなく、書き込みのタイミングで、それぞれ処理用レジスタに記憶されている値を書き込めばよい。
仮に、初期化レジスタに書き込むべき値が固定されている場合を考える。この場合には、一旦、初期化レジスタへの書き込みに先だって、処理用レジスタの値を一旦、メモリ上に退避する必要がある。その後、処理用レジスタを用いて初期化レジスタへの書き込みを行い、これが完了した後に、退避してあった値をメモリから処理用レジスタに復帰させるのである。
これに対し、本発明では、処理用レジスタの値をそのまま初期化レジスタに書き込めば済むため、この処理中に、処理用レジスタが別の値に書き換えられるおそれがない。従って、処理用レジスタの値の退避/復帰処理が不要となる分、初期化レジスタへの書き込み処理を簡素化することができる。
このように書き込み順序まで規定することによって、誤って経過時間初期化されるおそれを更に低減させることができ、制御処理監視部をより安定的に動作させることが可能となる。
例えば、制御処理が、ループ処理と割込処理を含んでいる場合を考える。ループ処理とは、予め規定された手順で繰り返し実行される処理である。割込処理とは、ループ処理の実行状態に依存しない所定のタイミングで、ループ処理の実行を中断して行われる処理である。中断とは、割込処理が終了すればループ処理に復帰することを意味する。遊技機の制御が、主制御装置と演出制御装置等の下位制御装置との分散処理で行われている場合には、割込処理は、下位制御装置への指示情報出力処理を実行するため、または指示情報出力処理をループ処理で行わせるよう指示するために行われる。前者の態様では、ループ処理を停止して、割込処理として用意された所定のプログラムを実行することになる。後者の態様では、ループ処理内で指示情報出力処理を行うための分岐を設け、割込処理が終了してループ処理に復帰した時に、割込処理からの指示によって分岐先の指示情報出力処理を行うようにすればよい。
こうした不都合を回避するためには、一部の初期化レジスタへの書き込みをループ処理で行い、残余の初期化レジスタへの書き込みを割込処理で行うことが好ましい。こうすることによって、ループ処理および割込処理のいずれか一方に異常が生じただけで、初期化レジスタへの正常な書き込みが行われなくなり、演算部がリセットされる。従って、この態様によれば、異常時にはより確実に演算部のリセットをかけることが可能となるため、制御を安定化させることができる利点がある。
この場合、書き込むべき固定値は任意に設定可能であるが、一例として、初期化レジスタへの書き込みに先立って、処理用レジスタの値を、その排他的論理和で得られる値に更新し、この演算で得られた結果を初期化レジスタに書き込むようにしてもよい。処理用のレジスタの値同士の排他的論理和は、00Hであるから、上述の処理では00Hを初期化レジスタに書き込むことになる。
ただし、処理用レジスタに新たに00Hを設定する場合には、通常、設定すべき値を指定する必要があるため、ロード命令などの2バイト命令を用いる必要が生じるが、排他的論理和を求める場合には1バイト命令で済む。従って、上述の処理によれば、固定値を書き込むにも関わらず、そのプログラムサイズを抑制することができる利点がある。
循環モードとは、上述した通り、複数の初期化レジスタへの値の書き込みが行われた時に経過時間初期化を行うモードである。経過時間初期化するための処理が煩雑になる分、誤った経過時間初期化が行われることを回避でき、安定的な動作をさせることができる利点がある。
一方、単純モードとは、いずれか単一の初期化レジスタに値の書き込みが行われた時に経過時間初期化するモードである。誤った経過時間初期化が行われる可能性は循環モードよりも高いが、経過時間初期化を行うための処理が簡易であるという利点がある。
このように、2つの動作モードを選択的に使用可能としておくことにより、制御処理の過程において、処理の簡素化と動作の安定性の重要性を考慮しながら、より適切な動作モードで制御処理監視部を稼働させることができる利点がある。
制御処理監視部の稼働が確認できない場合には、演算部は、制御処理監視部の動作を異常から回復させるための所定の回復処理を行うことが好ましい。この回復処理には、例えば、異常を音声出力やランプ点灯などの演出装置によって報知する処理も含まれる。
上述の稼働確認処理および回復処理は、制御プログラムに従って行うようにしてもよいし、演算部の固有の機能としてハードウェア的に実現するようにしてもよい。
こうすることにより、制御処理監視部が起動しないまま制御処理が進行することを回避でき、また異常がある場合には、回復処理を行うため、制御処理監視部をより確実に起動させることが可能となる。
このように制御処理監視部を起動させるために、複数回にわたって情報を受け取ることが要求される構成とすることによって、ノイズ等の影響で誤って制御処理監視部が起動するおそれを抑制でき、異常な設定で動作することを抑制することができる。処理の簡素化という観点からは、情報を2回出力することで設定および起動を行えるようにすることが好ましいが、3回以上で行うものとしても構わない。
また、制御処理監視部は、一旦、起動したら電源遮断後の再投入等によるリセット操作以外では停止できないよう構成してもよい。例えば、一旦、起動した後は、初期化レジスタへの書き込み以外は、外部からの情報を受け付けないよう構成しておくことによって実現できる。こうすることにより、ノイズ等の影響で、誤って制御処理監視部が停止してしまうことを回避することができる。
複数回とは連続であってもよいし、異なる情報をはさんでいてもよい。後者の態様では、演算部から設定情報を出力する間に、ノイズ等によってコントロールレジスタへの書き込みが行われても、同一の設定情報が複数回、書き込まれさえすれば制御処理監視部を起動させることができる。
A.装置構成:
B.主制御基板の構成:
B1.停電監視回路の構成:
C.制御処理:
C1.主制御側電源投入時処理:
C2.主制御側タイマ割り込み処理:
C3.サブ統合側処理:
C4.払出制御基板の制御処理:
D.効果
E.変形例:
実施例では、パチンコ機として構成した場合の例を示す。
実施例としてのパチンコ機は、遊技媒体に相当する遊技球を、発射し、遊技盤に設けられた入賞口に入賞させることによって、賞球の払出を受ける遊技機である。
パチンコ機が、第1種または複合機と呼ばれる機種の場合、始動入賞口と呼ばれる入賞口に遊技球が入賞すると、乱数を用いた電子的な抽選が行われる。抽選の結果、大当たりとなると、遊技盤に設けられた大入賞口が所定期間、所定回数、開閉し、賞球の払出を受けやすい有利な遊技状態(以下、「大当たり遊技」という)に移行する。
パチンコ機が、第2種または複合機の場合には、遊技球の動きによって機械的に抽選の当落を決定する機構が備えられている。この場合でも、大当たりが発生すると、機種に応じた大当たり遊技に移行する。
本実施例では、サブ制御基板310と装飾図柄制御基板350とは別基板として構成しているが、両者を統合した基板としてもよい。この場合、サブ制御基板310の機能と装飾図柄制御基板350の機能を、複数のCPUの分散処理で実現してもよいし、単独のCPUで実現する構成としてもよい。
また、主制御基板100と払出制御基板210も別基板とせず、両者を統合した基板として構成することもできる。
払出制御基板210、サブ制御基板310は、それぞれ主制御基板100からのコマンドに応じて動作する。装飾図柄制御基板350は、サブ制御基板310からのコマンドに応じて動作する。
図示しないが、主制御基板100は、この他にも、普通図柄表示装置、特別図柄保留ランプ、普通図柄保留ランプ、大当り種類表示ランプ、状態表示ランプなどの表示を制御することができる。
払出制御基板210は、遊技中の遊技球の発射および払い出しを次の手順で制御する。
遊技球の発射は、直接的には発射制御基板47によって制御される。即ち、遊技者が、遊技機正面に備えられた発射用のハンドルを操作すると、発射制御基板47は操作に応じて発射モータ49を制御し、遊技球を発射する。遊技球の発射は、タッチ検出部48によって、ハンドルに遊技者が触れていることが検出されている状況下でのみ行われる。払出制御基板210は、発射制御基板47に対して、発射可否の制御信号を送出することで、間接的に球の発射を制御する。
音声およびランプ点灯はサブ制御基板310が直接制御するが、LCD16の表示については、装飾図柄制御基板350を介して制御する。
図示を省略したが、スピーカ29を制御するため、サブ制御基板310には、音源ICおよびアンプが備えられている。CPUが、スピーカ29から出力する音声を決めて音声出力コマンドを出力すると、音源ICが予め用意された音源データから指定されたものを再生し、アンプで増幅してスピーカ29から出力する。
警報音には、例えば、遊技中の効果音とは明らかに異なるブザー音を用いることができる。警告用のランプ点灯としては、例えば、遊技盤の周囲全体を赤く点滅させるなど、遊技中とは明らかに異なる態様での点灯・点滅をさせることができる。
図2は主制御基板100上のワンチップマイクロコンピュータの回路構成を示す説明図である。主要な部分についてブロック図を示した。
CPU102内には、第1レジスタ110および第2レジスタ120が設けられている。第1レジスタ110、第2レジスタ120は同じ構成であり、内部には種々の処理用レジスタが含まれる。
CPU102は、処理の過程で、第1レジスタ110および第2レジスタ120のいずれかを選択的に使用する。つまり、第1レジスタ110を使用しながら処理を進めている間は、第2レジスタ120の内容は従前の状態のまま保持される。逆に、第2レジスタ120を使用しながら処理を進めている間は、第1レジスタ110の内容は従前の状態のまま保持される。使用するレジスタは、切換コマンドによって切り換え可能である。
本実施例では、後述する通り、制御処理は主制御側ループ処理と、主制御側タイマ割り込み処理から構成されている。従って、主制御側ループ処理を実行する際には第1レジスタ110を使用し、主制御側タイマ割り込み処理を実行する際には第2レジスタ120を使用するように切り換えるものとした。こうすることにより、従前の処理におけるレジスタの内容を保持しながら、それぞれの処理を実行することが可能となる。
INT優先順位制御回路151は、種々の構成を採ることが可能であるが、最も単純な構成としては、外部INTと内部INTのオアによって割込信号INTを出力する回路とすることができる。
CPU102は、WDT制御回路154から、ウォッチドッグタイマのタイマ値を入力することが可能となっている。図の例では、CPU102とWDT制御回路154とが直接、タイマ値を授受するように示したが、タイマ値は、内部バス150を介してCPU102に出力するようにしてもよい。
循環モードは、初期化レジスタ157を構成する3つのレジスタ157a、157b、157cの全てに値が書き込まれた時に、経過時間初期化を行うモードである。書き込む値は任意の値でよい。また、書き込み順序も問わない。もっとも、循環モードにおいて、書き込むべき値を固定したり、書き込み順序を固定したりしてもよい。
単純モードは、初期化レジスタ158に規定の値が書き込まれた時に、経過時間初期化を行うモードである。本実施例では、循環モード用の初期化レジスタ157とは別に単純モード用の初期化レジスタ158を設ける構成としたが、循環モード用の初期化レジスタ157の一部を単純モードで使用する構成としてもよい。また、本実施例では、任意の値を書き込むものとしたが、規定の値を書き込み可能としてもよい。
WDT制御回路154の動作モード等は、制御処理を開始した後、一旦、設定したら変更することができない構成としてもよい。設定が完了した後は、コントロールレジスタ156への書き込みコマンドを無視するような構成としておけばよい。こうすることにより、WDT制御回路154の設定が、不正に変更されたり、ノイズ等の影響で変わってしまったりすることを回避できる。
逆に、WDT制御回路154の動作モード等を、制御処理中に変更可能としてもよい。設定が完了した後も、コントロールレジスタ156への書き込みを許容すればよい。こうすることによって、制御処理の内容に応じて、単純モードおよび循環モードのそれぞれの利点を活かした使い分けが可能となる。
かかる構成に代えて、値00Hを2回書き込むことによって、一時的にウォッチドッグタイマの機能を停止させられるようにしてもよい。この場合は、例えば、制御処理中に、改めて設定値をコントロールレジスタ156に書き込むことによって、ウォッチドッグタイマを再起動可能とすればよい。こうすることによって、不要な場合には、ウォッチドッグタイマを停止させておくことができる。従って、初期化レジスタ157、158に書き込みを行う処理を省略できる分、処理を簡素化することができる。
これに対し、WDT制御回路154は、一旦、起動したら電源遮断後の再投入等によるリセット操作以外では停止できないよう構成してもよい。例えば、一旦、起動した後は、初期化レジスタ157、158への書き込み以外は、外部からの情報を受け付けないよう構成しておくことによって実現できる。こうすることにより、ノイズ等の影響で、誤ってWDT制御回路154が停止してしまうことを回避することができる。
また、CPU102は、同様に内部バス150を通じて、以下に示す種々のレジスタにアクセスすることも可能である。
PSMは、パラレルポート155[1]、155[2]を通じたデータ授受の方法の設定値を記憶するレジスタである。
RNDは、乱数値を読み出し用に記憶しておく乱数値レジスタである。
本実施例の主制御基板100に実装されたワンチップマイコンは、RAM104、ROM106等の内蔵されたデバイスとCPU102との間で、内部バス150を通じて授受される信号が、端子から外部に出力されるように許可したり、この出力を遮断したりする機能を有している。
主制御基板100は、停電監視回路を備えている。停電監視回路は、賞球の入賞などを検出するための検出スイッチに供給される検出スイッチ供給電圧の低下、および制御基板に供給される制御基板供給電圧の低下とを監視する回路である。これらの電圧のいずれか一方が、予め定めた電圧より低くなると停電予告信号をCPU102に出力する。
本実施例では、検出スイッチ供給電圧が瞬停、即ち瞬間的に電圧が低下する状態となると、検出スイッチは、遊技球が入賞した信号を出力した状態となるよう構成されている。この結果、CPU102は、検出スイッチ供給電圧の瞬停が生じた時には、入賞していないにも関わらず入賞があったかのうように誤った検出信号に基づいて遊技を進行してしまう。かかる特性は、不正行為に利用されるおそれがある。従って、停電監視回路が検出スイッチ供給電圧を監視することによって、意図的に瞬停を生じさせる不正行為を防止することが可能となる。
制御基板供給電圧が瞬停した場合には、CPU102にリセットがかかるため、初期値更新型のカウンタは初期値0からスタートする。このため、所定間隔ごとに制御基板供給電圧を瞬停させることで、カウンタが大当り判定値となるタイミングを意図的にコントロールする不正行為を行うことができる。従って、停電監視回路が制御基板供給電圧を監視することによって、かかる不正行為を防止することが可能となる。
停電監視回路が出力する停電予告信号は、通常、パチンコ機の電源断時にCPU102に入力される信号である。従って、停電監視回路が瞬停による不正行為を検出して停電予告信号を発すると、CPU102は、電源断時に行う停電処理を行うことにより、瞬停による不正行為に影響されずに遊技を継続することができる。
停電監視回路180は、安定化電源回路181、コンパレータ182、Dタイプフリップフロップ184を備えて構成されている。
本実施例では、2つのコンパレータ182[0]、182[1]を用いて検出スイッチ供給電圧および制御基板供給電圧の停電または瞬停を監視するものとしているが、いずれか一方のみを監視するようにしてもよい。
コンパレータ182での比較結果はDタイプフリップフロップ184に入力されている。
Dタイプフリップフロップ184は、2つのDタイプフリップフロップ回路184[0]、184[1]を備えており、その1つ(184[1])を本実施形態で用いている。なお、コンパレータ182に入力される+5Vは、グランドと接地されたコンデンサC2によりリップルが除去されて平滑化されている。また、Dタイプフリップフロップ184に入力される+5Vは、グランドと接地されたコンデンサC3によりリップルが除去されて平滑化されている。
第1に、停電処理を確実に行うことが可能となる利点がある。つまり、瞬間的な停電の場合には停電予告信号が非常に短いパルスとなる可能性があるが、ラッチしておくことによって、こうしたパルスを見逃すおそれを抑制できるからである。瞬停が生じた後の電源は不安定な状態となる可能性があるため、瞬間的な停電であっても、一旦、停電処理を実行させる方が遊技機を安定的に動作させることができるのである。停電予告信号をソフトウェア的にポーリングすることでラッチを代替させることも可能ではあるが、この方法では、ポーリングのサンプリング周期より短いパルスの停電を見逃してしまう可能性がある。ラッチによれば、短いパルスの停電であっても確実に停電処理を行うことができる利点がある。
C1.主制御側電源投入時処理:
図4〜5は主制御側電源投入時処理の一例を示すフローチャートである。主制御基板100のCPU102が電源投入による復電をトリガとして開始・実行する処理である。「復電」は、電源を遮断した状態から電源を投入した状態、停電又は瞬停からその後の電力の復旧した状態も含む。
図4〜5に示した主制御側電源投入時処理は、CPU102内の第1レジスタ110を用いて行われる。
RAM104の終端側から先頭側に向けて使用するようにスタック領域を設ける場合には、スタックポインタには初期値としてRAMの終端アドレスを設定することになる。
設定データには、この他、単純モードの時に初期化レジスタ158に書き込むべき規定値の設定や、循環モードの際に3つの初期化レジスタ157a〜157cへの書き込み順序などを含めても良い。
また、本実施例では、設定データとして値00Hを設定すると、ウォッチドッグタイマを起動禁止とすることが可能となっている。
両者が一致しない場合には、同じ設定値が連続して書き込まれるまで、設定値の書き込み(ステップS3)を繰り返し実行する。
ステップS3、S4のループ処理には、回数または時間の上限値を設け、この上限値を超えても同じ設定データ2を2回繰り返して設定できない場合には、ステップS1から再度実行させるなどの処理を行うようにしてもよい。
上述の例では、同じ設定データを2回繰り返して設定する方法をとったが、2回にわたってコントロールレジスタ156に入力するデータは、相互に関連があり、参照することによって、設定データの正誤を判断できるデータであればよい。例えば、1回目のデータのビットを反転させたデータ(FFHとの排他的論理和)を2回目のデータに用いる方法などが考えられる。
ウェイトタイマ処理0(ステップS6)における待ち時間は、ウォッチドッグタイマが最低1単位時間だけ更新したことが確認出来る範囲で任意に設定可能である。
タイマ値が変化していない場合には(ステップS8)、ウォッチドッグタイマが起動していないと判断し、その回復処理として、ウォッチドッグタイマの設定処理(ステップS2以降)を再試行し、ウォッチドッグタイマを再起動させる。
また、ウォッチドッグタイマの再起動を行った上で、それでも正常に起動しない場合に、全体の再起動を行うようにしてもよい。
このように、所定の待機時間を経た後に停電予告信号を確認するのは、停電予告信号が、停電又は瞬停によってパチンコ機1への供給電圧が所定の停電予告電圧より低くなった時に出力されるため、電源投入時に遊技機への供給電圧が所定電圧に達するまでは、一定の時間を要するためである。これにより、供給電圧が不安定な状態で、主制御基板の遊技機の制御に関する処理(ループ処理、タイマ割込処理)を実行しないようにすることが可能となる。
本実施例においても、ウェイトタイマ処理2の後にRAMクリアスイッチの操作の有無を検出する方法を採ることも可能である。ただし、この場合には、RAMクリアスイッチの操作が検出される前に、遊技場の係員が押下を中断してしまうおそれがあり、遊技場の係員はRAMクリアを行ったつもりでいても、結果としてRAMクリア処理が行われないまま遊技機の制御処理が開始されるおそれもある。ウェイトタイマ処理2の前にRAMクリアスイッチの操作を検出することによって、こうした弊害を回避することができる。
かかる弊害を回避するため、ウェイトタイマ処理2(ステップS26)が完了した後に、再度、RAMクリアスイッチの操作を検出するようにしてもよい。例えば、後述するステップS28とS30の間に検出処理を設ける方法が考えられる。こうすることによって、RAMクリアスイッチの操作が電源投入から若干、遅れて行われた場合でも、RAMクリアを行うことが可能となる。
RAMクリアスイッチの操作の検出タイミングは、このように種々の設定が可能である。本実施例のように、ウェイトタイマ処理2の前でのみ検出するようにしてもよい。また、ウェイトタイマ処理2の後にのみ行うようにしてもよいし、ウェイト処理2を挟む前後で行うようにしてもよい。
CPU102は、RAMクリア報知フラグRCLが値0である時(図6のステップS28)、即ちRAMクリアスイッチが操作されていない時には、RAM104に記憶されている遊技情報のチェックサムを算出する(ステップS30)。そして、チェックサムの値が前回の電源断時に予め算出されバックアップされていたチェックサムの値と一致しているか否かを判定する(ステップS32)。
チェックサムが一致しているときには、バックアップフラグBKが値1であるか否かを判定する(ステップS34)。バックアップフラグBKは、前回の電源断時に、遊技情報、チェックサムの値などが正常にバックアップされていることを表すフラグである。
バックアップフラグBKが値1であるときには、CPU102はバックアップフラグBKに値0をセットし、RAM104にROM106から読み出した復電時の設定を行う(ステップS36)。また、電源投入時コマンド作成処理、つまりバックアップされていた遊技情報に応じた各種コマンドをRAM104の所定記憶領域に記憶させる処理を行う(ステップS38)。
RAM104の初期化として、CPU102は、まずRAM104の全領域に値00Hを書き込むことによって、RAM104をクリアする(ステップS40)。この処理によって、大当たり判定用乱数や初期値更新型のカウンタ等の値は初期値00Hにセットされる。
次に、CPU102はROM106から読み出した初期情報をRAM104にセットする(ステップS42)。
そして、CPU102はRAMクリア報知を行う(ステップS44)。RAMクリア報知とは、RAMクリアが行われたことを報知する音声出力を指示するRAMクリア報知コマンドをサブ制御基板310に出力する処理である。コマンドを受け取った時のサブ制御基板310の動作は後述する。
CPU102が割り込み許可設定を行うと(ステップS48)、上述の割り込み周期でタイマ割り込み処理が繰り返し行われるようになる。
この処理では、CPU102は、まず初期化レジスタ157aに値を書き込む(ステップS50)。これはウォッチドックタイマを初期化するために必要な処理の一つである。本実施例では、循環モードを使用した場合を例示する。従って、ステップS50での初期化レジスタ157aへの書き込みの他、後述する主制御タイマ割り込み処理において、初期化レジスタ157b、157cに値が順次、設定された時に、ウォッチドックタイマが初期化されるように構成されている。
例えば、初期化レジスタ157aへの書き込み(ステップS50)に先だって、CPU102に、第1レジスタ110に記憶されている値同士の排他的論理和を算出するコマンドを実行させる。同じ値同士の排他的論理和は、値00Hとなる。第1レジスタ110に値00Hその他の任意の値を設定するコマンドは、通常、2バイト命令であるのに対し、排他的論理和を求めるコマンドは1バイト命令である。従って、排他的論理和によって得られた値を書き込む方法を採れば、プログラムサイズを抑えつつ、初期化レジスタ157aに固定値を書き込むことが可能となる。
後述する初期化レジスタ157b、157cへの書き込みも同様である。
これに対し、CPU102の処理に異常が生じると、初期化レジスタ157への値の設定が行われなくなる。この状態で、基準時間が経過すると、WDT制御回路154(図2参照)が異常発生と判断し、リセット信号を出力し、CPU102にリセットがかかる。この結果、CPU102は電源投入時の処理(ステップS1)から再度実行する。
CPU102は、主制御側ループ処理として、以上で説明したステップS50〜ステップS54を繰り返し行う。
CPU102は、次に停電クリア信号を出力する(ステップS58)。また、遊技盤面に設置された種々のソレノイドやランプ等に出力している駆動信号を停止する。
そして、RAM104の遊技情報に基づいてチェックサム算出し(ステップS60)、バックアップフラグBKに値1をセットする(ステップS62)。これによりバックアップ情報の記憶が完了する。
図7は主制御側タイマ割り込み処理のフローチャートである。主制御基板100のCPU102によって、所定の割り込み周期(本実施形態では、4ms)ごとに繰り返し行われる処理である。
処理を開始すると、CPU102は、レジスタの退避を行う(ステップS71)。本実施例では、処理に使用するレジスタを第1レジスタ110から第2レジスタ120に切り換えることによって退避させることができる。
第1レジスタ110、第2レジスタ120が用意されていない場合には、第1レジスタ110の記憶内容を、RAM116上に格納することで退避させてもよい。
ステップS72の処理を行うことにより、主制御側ループ処理(図6参照)と合わせて、初期化レジスタ157a、157bへの書き込みが完了することになる。
以下、CPU102は、図示する各処理を順次、実行する。これらの処理の実行順序は、図示した順序に限らない。
ここで更新される乱数としては、例えば、大当たりの判定に使用される大当たり判定用の乱数、および大当たり時の図柄を決定するための大当たり図柄用の乱数が挙げられる。また普通図柄に関しては、普通図柄の当たり判定に使用される普通図柄当り判定用乱数などが挙げられる。
本実施例では、CPU102は、上述の各処理の実行時には、それぞれ出力すべき情報およびコマンドを設定してRAM104に記憶させておき、ポート出力処理およびサブ統合基板コマンド送信処理において、RAM104から情報・コマンドを読み出して出力する方法をとっている。
本実施例では、このように主制御側ループ処理(図6参照)と、主制御側タイマ割り込み処理(図7)にわたって、初期化レジスタ157a〜157cへの書き込みを行う。いずれの処理に異常が生じた場合でも、初期化レジスタ157a〜157cの一部または全部への値の書き込みが欠けるため、ウォッチドッグタイマによりCPUにリセットがかかることになる。従って、主制御側ループ処理(図6参照)または主制御側タイマ割り込み処理(図7)の一方のみで、初期化レジスタ157a〜157cへの書き込みを行う場合に比較して、異常が生じた場合の回復処理を安定的に行わせることが可能となる。
レジスタの復帰は、本実施例では、第2レジスタ120から第1レジスタ110への切換を行えばよい。ステップS71において、RAMの所定領域にレジスタの値を退避した場合には、ステップS84では、これらの値をRAMから読み出し、それぞれを対応する各レジスタに再設定すればよい。
サブ制御基板310は、主制御基板100からのコマンドに応じて、種々の演出制御を行う。
図示を省略するが、サブ制御基板310が実行する処理も、主制御側ループ処理(図6)と同様のループと、主制御側タイマ割り込み処理(図7)と同様の割込処理から構成される。サブ制御基板310は2ms周期で割り込み処理を実行するとともに、16ms周期で「16ms定常処理」を実行する。
この16ms定常処理では、主制御基板100からの各種コマンドを解析するコマンド解析処理、パネル装飾ランプ12、枠装飾ランプ31(図1参照)の点灯制御を行うランプ処理、演出用の音声や警報音などの出力処理、装飾図柄制御基板350を介してLCD16に演出用の画面を表示させる処理、これらの処理が正常に行われていることを監視するウォッチドックタイマ処理、および役物の駆動パターンをスケジューラにセットする処理等を行う。
払出制御基板210は、主制御基板100からの指示に従って、遊技媒体の払い出しを制御する。
払出制御基板210が実行する制御処理は、主制御基板100と同様、ループ状のメイン処理とタイマ割込処理とから構成することも可能であるが、本実施例では、メイン処理内で払出に必要な処理を繰り返し実行するものとした。
(1) 以上で説明した実施例のパチンコ機1によれば、初期化レジスタ157に任意の値を書き込めばよいため、書き込み処理を簡素化することができ、プログラムサイズを低減させることができる利点がある。
図8(a)には固定値Vaを書き込む場合の処理内容を示した。書き込みには、第1レジスタ110または第2レジスタ120に含まれるAレジスタを用いるものとする。
CPU102は、まず従前のAレジスタの値を、ストア(ST)命令によって、アドレスnnHで示されるメモリ上の領域に退避する(ステップS50a)。この時、図の右側に示す通り、Aレジスタの値は、従前の値V1が格納されている。
次に、CPU102は、初期化用の設定値Vaを、ロード(LD)命令によって、Aレジスタに設定する(ステップS50b)。図の右側に示す通り、この処理によって、Aレジスタの値は、Vaに書き換えられる。
書き込みを終えると、CPU102は、アドレスnnHのメモリ領域から、ステップS50aで退避した値V1を読み出し、Aレジスタに復帰する(ステップS50d)。図の右側に示す通り、この時点で、Aレジスタの値はV1に回復する。
この処理では、CPU102は、初期化レジスタ157に、Aレジスタの値を書き込むだけで済む。初期化レジスタ157に設定すべき固定値をAレジスタに設定する必要がないため、図8(a)のステップS50bの処理は不要となる。また、Aレジスタの値が書き換えられないため、Aレジスタの退避/復帰(図8(a)のステップS50a、S50d)の処理も不要となる。このように、任意の値を書き込む場合には、初期化レジスタ157への書き込み処理は、固定値を書き込む場合の1/4のプログラムサイズで済むことになる。
また、CPU102は、ステップS5〜7の処理によって、ウォッチドッグタイマが正常に起動していることを確認する。こうすることによって、ウォッチドッグタイマが誤って起動しないままで制御処理が行われることを回避できる。従って、制御処理に異常が生じた時には、ウォッチドッグタイマの作用によって適正にリセットがかかるため、異常からの復旧を安定的に行うことが可能となる。
E1.変形例(1):
実施例では、ウォッチドッグタイマを、起動後に設定(図4のステップS2〜S4)した動作モードで一貫して使用する場合を例示した。これに対して、ウォッチドッグタイマの動作モードを途中で切換可能な構成としてもよい。
変形例では、処理を開始した後、実施例(図4)と同様の処理によって、ウォッチドッグタイマの設定を行う。この際、ステップS2〜S4では、単純モードに設定する。併せて、初期化レジスタ158に書き込むべき値も設定する。
この状態で、CPU102は、図5、5に示す処理を実行する。
単純モードでは、主制御側ループ処理(図6参照)を開始するまでの所要時間に余裕を持たせた値を、ウォッチドッグタイマの基準値として設定しておくことが好ましい。こうすることによって、主制御側ループ処理が開始されるまでの間は、初期化レジスタ158への書き込みを省略することが可能となる。
また、このように動作モードの切換を行った後、CPU102は実施例(図4)と同様、ウォッチドッグタイマのタイマ値の変化の有無に基づいて、ウォッチドッグタイマが正常に起動したか否かを判断する(ステップS49d〜S49g)。
単純モードでの起動時(図4のステップS2〜4)で、ウォッチドッグタイマが正常に起動することが確認済みであるから、循環モードの設定・起動時(図9のステップS49a〜S49c)では、正常に起動するものと考え、起動の確認(ステップS49d〜49g)を省略してもよい。
循環モードには、経過時間初期化のために、初期化レジスタ157a〜157cへの値の書き込みが必要である。経過時間初期化するための処理が煩雑になる分、誤った経過時間初期化を回避でき、安定的な動作をさせることができる利点がある。また、主制御側ループ処理(図6)および主制御側タイマ割込処理(図7)の双方にわたって、初期化レジスタ157a〜157cへの書き込みを行うことによって、双方の処理のいずれで異常が発生しても対処できる利点がある。
一方、単純モードとは、初期化レジスタ158への値の書き込みによって経過時間初期化が可能である。誤った経過時間初期化が行われる可能性は循環モードよりも高いが、経過時間初期化するための処理が簡易であるという利点がある。
変形例では、主制御側ループ処理(図6)が開始されるまでの間は、比較的簡易な動作モードである単純モードを用い、主制御側ループ処理(図6)および主制御側タイマ割込処理(図7)が開始された後は、双方の異常に総合的に対処可能な循環モードを用いる。このように、2つの動作モードを切り換えることによって、それぞれの処理内容に適した状態でウォッチドッグタイマを稼働させることができる。
実施例および変形例では、タイマ値の変化によってウォッチドッグタイマが正常に起動しているか否かを判断する例を示した。これに対し、WDT制御回路154から稼働中か否かを示すフラグなどの情報を出力可能な構成としてもよい。例えば、フラグのデフォルト値として値0を設定しておき、正常に稼働した場合には、値1に変更するように構成しておく方法が考えられる。CPU102は、このフラグの値を参照することにより、容易かつ速やかに、ウォッチドッグタイマの稼働状況を確認することが可能となる。
このフラグは、ソフトウェア的に構成してもよいが、ハードウェア的に構成する方が好ましい。
実施例および変形例では、クロック153からの矩形波を計数することによって計時を行うディジタルタイマを備える場合を例にとって、タイマ値の変化によりウォッチドッグタイマが正常に起動しているか否かを確認する例を示した。
ウォッチドッグタイマは、コンデンサ(C)と抵抗(R)の組み合わせ回路、いわゆるRC回路を用いてアナログで構成することもできる。RC回路の電圧は、電圧印加開始後の時間とともに、時定数に応じた一定の変化を示すことが知られているから、この電圧値が、基準時間に対応する所定電圧レベルに達した時に、演算部の動作をリセットするよう構成すればよい。この場合には、初期化レジスタへの書き込みが行われた時には、コンデンサ(C)を放電させる処理を行うことによって、初期化することができる。また、リセットがかかるまでの基準時間は、RC回路の時定数を設定する方法(例えば、可変抵抗器等を用いる方法)、リセットをかける際の基準となる電圧レベルを設定によって変更する方法などによって、調整することが可能である。
変形例(3)では、このようなアナログのウォッチドッグタイマを用いた場合に、正常に起動しているか否かを確認する方法を示す。
処理を開始すると、CPU102は、実施例(図4)と同様、割込モードの設定、およびスタックポインタの設定を行い(ステップS1a)、ウォッチドッグタイマのコントロールレジスタの設定を行う(ステップS2a)。動作モードは単純モード、循環モードのいずれでもよい。
この場合には、リセット後に、再度、ウォッチドッグタイマが正常に起動していることを確認することが望ましいため、WDT起動フラグをオフとしておくことが好ましい。
また、変形例(3)では、ウォッチドッグタイマによるリセットの基準時間を、その他の場合よりも短くしてもよい。こうすることによって、ウォッチドッグタイマの動作確認(ステップS4a後の無限ループ)に要する時間が短くて済むという利点がある。もっとも、この場合でも、一旦、ウォッチドッグタイマの動作を確認した後は、基準時間を通常の設定値としておく必要がある。このため、例えば、基準時間の設定値を、ステップS4aの直前で短くし、ステップS5aの直前で通常の値に戻すようにしてもよい。また、WDT起動フラグがOFFの場合には、ステップS2aで短い基準時間を設定し、ONの場合には、通常の値を設定するようにしてもよい。
本発明は、パチンコ機のみならず、スロットマシンなど種々の遊技機に適用可能である。
また、上述の実施例において、ソフトウェアで実現している部分はハードウェア的に実現するようにしてもよいし、その逆を行っても良い。
4a…表示部
4b…操作スイッチ
12…パネル装飾ランプ
16…LCD
20…賞球払出装置
21…払出モータ
22…払出球検出器
23…モータ駆動センサ
29…スピーカ
31…枠装飾ランプ
32、34…ランプ中継基板
41…特別図柄表示装置
42…入賞検出器
43…大入賞口ソレノイド
47…発射制御基板
48…タッチ検出部
49…発射モータ
100…主制御基板
102…CPU
104…RAM
106…ROM
110…第1レジスタ
120…第2レジスタ
150…内部バス
151…INT優先順位制御回路
152…タイマ回路
153…クロック
154…WDT制御回路
155…パラレルポート
156…コントロールレジスタ
157、157a〜157c、158…初期化レジスタ
210…払出制御基板
310…サブ制御基板
350…装飾図柄制御基板
Claims (1)
- 所定の遊技媒体を用いて遊技を行う遊技機であって、
前記遊技の進行を制御するための制御処理を表す制御プログラムを格納したメモリと、
前記制御プログラムに従って、前記制御処理を実行する演算部と、
前記演算部の制御処理の異常を監視するための制御処理監視部とを有し、
前記制御処理監視部は、
起動後または初期化後の経過時間が所定の基準時間を超過すると、前記演算部の動作をリセットするリセット処理部と、
前記演算部が値を書き込み可能な複数の初期化レジスタと、
前記複数の初期化レジスタのそれぞれに、前記演算部から書き込みが行われた場合には、前記経過時間の計測を初期化する経過時間初期化部とを有し、
前記演算部は、前記制御処理を行う際に、情報の記憶または演算に使用する処理用レジスタを有しており、
前記制御処理は、
前記複数の初期化レジスタに対し、それぞれ前記経過時間が前記基準時間を超えない所定のタイミングで、前記処理用レジスタに記憶されている値を書き込む経過時間初期化処理を含み、
前記経過時間初期化部は、
前記複数の初期化レジスタに規定の順序で値が書き込まれた場合に前記初期化を行うよう構成されると共に、
前記複数の初期化レジスタへの値の書き込みが行われた時に前記初期化を行う循環モードと、単一の初期化レジスタに値の書き込みが行われた時に前記初期化を行う単純モードとを選択的に設定可能とされ、
前記経過時間初期化処理は、
前記規定の順序で、前記複数の初期化レジスタへの値の書き込みを行う処理であって、前記初期化レジスタへの書き込みに先立って、前記処理用レジスタの値を、その排他的論理和で得られる値に更新し、得られた結果を前記初期化レジスタに書き込む処理であり、
前記制御処理は、
電源投入時に実行される電源投入時処理と、
前記電源投入時処理に引き続いて実行されるメインループ処理と、
所定の割り込み周期毎に実行されるタイマ割り込み処理と、を含み、
前記経過時間初期化処理は、
前記メインループ処理と前記タイマ割り込み処理とに亘って実行され、
前記電源投入時処理は、
前記経過時間初期化部の動作モードを前記単純モードに設定する処理を含み、
前記制御処理は、
前記電源投入時処理の終了後、前記メインループ処理に移行する前に、
前記経過時間初期化部の動作モードを前記循環モードに切り換え設定する処理を含む、
ことを特徴とする遊技機。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007319393A JP5238951B2 (ja) | 2007-12-11 | 2007-12-11 | 遊技機 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007319393A JP5238951B2 (ja) | 2007-12-11 | 2007-12-11 | 遊技機 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009142303A JP2009142303A (ja) | 2009-07-02 |
JP5238951B2 true JP5238951B2 (ja) | 2013-07-17 |
Family
ID=40913642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007319393A Active JP5238951B2 (ja) | 2007-12-11 | 2007-12-11 | 遊技機 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5238951B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014087606A (ja) * | 2013-09-24 | 2014-05-15 | Fujishoji Co Ltd | 遊技機 |
JP6757197B2 (ja) * | 2016-07-25 | 2020-09-16 | 株式会社平和 | 遊技機 |
JP6261703B2 (ja) * | 2016-11-04 | 2018-01-17 | 株式会社三共 | 遊技機 |
JP6261704B2 (ja) * | 2016-11-04 | 2018-01-17 | 株式会社三共 | 遊技機 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4178210B2 (ja) * | 2002-01-18 | 2008-11-12 | 株式会社大一商会 | 遊技機 |
JP4811928B2 (ja) * | 2006-03-23 | 2011-11-09 | 株式会社大一商会 | パチンコ機 |
-
2007
- 2007-12-11 JP JP2007319393A patent/JP5238951B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2009142303A (ja) | 2009-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5238952B2 (ja) | 遊技機 | |
JP5250804B2 (ja) | 遊技機 | |
JP5120931B2 (ja) | 遊技機 | |
JP5120932B2 (ja) | 遊技機 | |
JP4264593B2 (ja) | 遊技機 | |
JP4656110B2 (ja) | 遊技機 | |
JP5238951B2 (ja) | 遊技機 | |
JP4431819B2 (ja) | 遊技機 | |
JP2009000241A (ja) | 遊技機 | |
JP4321642B2 (ja) | 遊技機 | |
JP2009112437A (ja) | 遊技機 | |
JP5805741B2 (ja) | 遊技機 | |
JP5450766B1 (ja) | 遊技機 | |
JP4023322B2 (ja) | 遊技機 | |
JP2008023224A (ja) | 遊技機 | |
JP2016026594A (ja) | 遊技機 | |
JP4492685B2 (ja) | スロットマシン | |
JP5390680B1 (ja) | 遊技機 | |
JP4395809B2 (ja) | 遊技機 | |
JP4379514B2 (ja) | 遊技機 | |
JP4428439B2 (ja) | 遊技機 | |
JP4320685B2 (ja) | 遊技機 | |
JP4428438B2 (ja) | 遊技機 | |
JP4665958B2 (ja) | 遊技機 | |
JP5450767B1 (ja) | 遊技機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120913 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120925 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121114 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20121114 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20121114 |
|
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: 20130122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130221 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160412 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |